Unix Create a Symbolic Link

Q. How do I create links under UNIX / Linux operating systems?

A. You need to use ln command, which is a standard Unix / Linux / BSD command, used to create links to files. There are two types of links under UNIX, hard and soft link:

Hard link vs. Soft link in Linux or UNIX

[a] Hard links cannot links directories ( cannot link /tmp with /home/you/tmp)
[b] Hard links cannot cross file system boundaries ( cannot link /tmp mounted on/tmp to 2nd hard disk mounted on /harddisk2)
[c] Symbolic links refer to a symbolic path indicating the abstract location of another file
[d] Hard links, refer to the specific location of physical data.

UNIX Create Symboliclink Command

To create a symbolic link, enter
$ ln -s {/path/to/file-name} {link-name}
$ ln -s /shared/sales/data/file.txt sales.data.txt
$ vi sales.data.txt
$ ls -l sales.data.txt

To delete a link, enter
$ rm {link-name}
$ rm sales.data.txt
$ ls -l
$ ls -l /shared/sales/data/file.txt

If you delete the soft link itself (sales.data.txt) , the data file would still be there ( /shared/sales/data/file.txt ). However, if you delete /shared/sales/data/file.txt, sales.data.txt becomes a broken link and data is lost.

UNIX Create Hardlink Command

To create hard link, enter (without the -s option):
$ ln {file.txt} {hard-link}
$ ln /tmp/file link-here

You can delete hard link with rm command itself:
$ rm {hard-link}
$ rm link-here

If you delete a hard link, your data would be there. If you delete /tmp/file your data still be accessible via link-here hard link file.

See how to create a hard links in Linux / UNIX for more information.

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 2 comments… read them below or add one }

1 Puneet Verma 05.06.09 at 12:17 pm

I am trying to create a hard link to PHP file after installation of PHP4 as a CGI .
My Current directory is clients cgi-bin and want to create a link to usr/local/php4/bin/php but getting following error:

ln: creating hard link `php’ to `/usr/local/php4/bin/php’: Invalid cross-device link

2 Atul Khachane 06.08.09 at 3:34 pm

Hi,

You may delete soft link using below command
# unlink {link name};

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tagged as: , , , , , , , , , , , , , , ,

Previous post: UNIX Find A File Command

Next post: How To Find and Overcome Shell Command Line Length Limitations