Solved

What are sym links?

Posted on 2008-10-24
13
276 Views
Last Modified: 2010-04-19
Hi

Could somebody please explain what/how/why of symbolic links for Dummies please?
Thanks
0
Comment
Question by:Lady_M
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 6
13 Comments
 
LVL 3

Assisted Solution

by:siranm
siranm earned 40 total points
ID: 22795632
If translated to windows, symlinks (SYMbolic links) would be like  a 'direct access'.

That is, a 'file' that only points to another file.

There are two type, hard links and soft link.

A hard link is like having the same filecontents associated with two different names on you computer. It is the same which fileNAME you access.

A softlink is like an arrow (a file arrow) that just points to a file. Whenever you access the arrow, the system redirects you to the pointed file.

 
0
 
LVL 20

Accepted Solution

by:
edster9999 earned 85 total points
ID: 22795722
A symlink is a pointer or a redirection to another place.

image you have a set of folders in your own home area called
"work", "rest" and "play"

You decide to also have a music folder but there is already a general music folder outside for everyone to access.  You can put a symlink which will look like a 4th folder but will just point to the one outside your area.  This is better than copying the music folder as then there would be 2 copies taking up twice the space.

so now you look at your folders :
work, res, play and music

and if you ask for more details (with ls -l) you can see music is really outside
work
rest
play
music -> /public/music
0
 

Author Comment

by:Lady_M
ID: 22795861
Thanks guys.

edster9999 - ah now I get it.  So just like windows shortcuts?

So I need to do this on my host server.  I want to create sym links from two subdirectories to a folder in the root.  What are the steps?
0
Comparison of Amazon Drive, Google Drive, OneDrive

What is Best for Backup: Amazon Drive, Google Drive or MS OneDrive? In this free whitepaper we look at their performance, pricing, and platform availability to help you decide which cloud drive is right for your situation. Download and read the results of our testing for free!

 
LVL 20

Assisted Solution

by:edster9999
edster9999 earned 85 total points
ID: 22796071
Yes - similar (but more powerful)

if the folder in the root is called /music
and you wish this to appear inside
/home/boris
and
/home/jane

you type these commands

ln -s /music /home/boris/music
ln -s /music /home/jane/music

this will create a symlink folder called music inside both locations

you could even call it by a different name

ls -s /music /home/boris/my-tunes
0
 

Author Comment

by:Lady_M
ID: 22796250
And so suppose I want to create a link in the header of my file in the subdirectory to point to a file that is located in the directory in the root, I would just create a relative link to the one in the subdirectory - is that right?
0
 

Author Comment

by:Lady_M
ID: 22796315
I'm not sure I explained that very well, what I meant was:

Suppose I have a global stylesheet in the root called /global_stylesheets/main.css

And I want to link to it from a file in /subdirectory/pages/mypage.html

And I've got a sym link in my subdirectory such as /subdirectory/my_global_symlink

Then in the head of mypage.html I would put:

<head>
<link rel="stylesheet" href="../my_global_symlink/main.css" type="text/css" media="screen"/>
</head>

Is that right?
0
 
LVL 20

Expert Comment

by:edster9999
ID: 22796601
Totally different form of linking....

Up to now we have been talking about the file system.  Finding files and folders as you browse round the hard disks.

Here you are talking about find files in your web server.

It is a good idea to keep only one copy of files like this on a web server and certainly not a good idea to use sym links.  It will always lead to confusion later.

So lets use your example above.  and put it in a folder on the hard disk

/www/mainsite/

so the root of your web site is in /www/mainsite
and inside here you have a folder called global_stylesheets
abd one called /subdirectory/pages

in any file on this system you will just need to use the path /global......
as this is this relies on the root of this system.  Ignore symlinks here... in fact don't use them.

<link rel="stylesheet" href="/global_stylesheets/main.css" type="text/css" media="screen"/>

that will find the file form any folder or sub folder on that site.

0
 

Author Comment

by:Lady_M
ID: 22796714
Hi
That's what I originally tried but my host told me that wasn't possible.  The subdirectories I am talking about here are subdomains and it's not possible to traverse up the tree from them to the root with relative links, nor to reference files in the root as you've suggested, so they suggested symlinks to me as the only solution.
0
 
LVL 20

Assisted Solution

by:edster9999
edster9999 earned 85 total points
ID: 22796936
No sym links are bad in web site design and should be avoided.

so lets start the example again....

Do you have something like this

/www/mainsite/
/www/subsite/

and then each is referenced by a seperate web address
example top one is www.example.com
and the bottom on is london.example.com

Is that right ?

If so then it is correct that you can not access the files in the way I stated above as they are on different web sites (I did use the phrase "will find the file from any folder or sub folder on that site.")
As they are separate sites you have two options.

1. you can put in the full web site reference in the code and then it will pull the file from the other site.
So if the file is located in the top directory (www site) then from the bottom one (London site) you can have the code :

<link rel="stylesheet" href="http://www.example.com/global_stylesheets/main.css" type="text/css" media="screen"/>

and this would pull the file off the other server.

2. Copy the files.  This is cleaner and would not result in any problems if you took the top site down or renamed it but would mean 2 copies of the file to maintain.
One in each folder
0
 

Author Comment

by:Lady_M
ID: 22796996
No the structure is like this:

www.mytopdomain.com
www.mysubdomain.com
www.myothersubdomain.com

But the folders look like this:

public_html/mytopdomain/mysubdomain/
public_html/mytopdomain/myothersubdomain/

So I want to put a global folder in public_html/global_files/

and reference them from public_html/mytopdomain/
and
public_html/mytopdomain/mysubdomain/

0
 
LVL 20

Expert Comment

by:edster9999
ID: 22797161
a server can not go above its root area so you can not use ".." as above in your examples and you can not refence anything in public_html as it is above the root.

The options 1 and 2 a couple of messages up still stand as valid in this situation.
0
 

Author Comment

by:Lady_M
ID: 22797450
Ah okay, I assumed that the root was the level above /public_html/.  But it's actually /mytopdomain/

?

Thanks for your help.
0
 
LVL 20

Expert Comment

by:edster9999
ID: 22797709
in the configuration for the individual web site you specify the root folder.
You could set it to be /public_html but you would then be looking for the files in this folder and if the site was inside /mytopdomain/ you would have to have that in the web address for all those files.

root folder is what you get into when you do just

http://www.mytopdomain.com/
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

this article is a guided solution for most of the common server issues in server hardware tasks we are facing in our routine job works. the topics in the following article covered are, 1) dell hardware raidlevel (Perc) 2) adding HDD 3) how t…
Data center, now-a-days, is referred as the home of all the advanced technologies. In-fact, most of the businesses are now establishing their entire organizational structure around the IT capabilities.
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question