You need to use the ln command. It is a standard Unix / Linux / BSD command to create links to files. There are two types of links under UNIX, hard and soft link:
| Tutorial details | |
|---|---|
| Difficulty | Easy (rss) |
| Root privileges | No |
| Requirements | ln command |
| Estimated completion time | N/A |
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 a symbolic link 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
How do I delete a symbolic link?
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 a hardlink command
To create hard link, enter (without the -s option):
$ ln {file.txt} {hard-link}
$ ln /tmp/file link-here
How do I delete a hard link?
You can delete hard link with the 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 also:
- See how to create a hard links in Linux / UNIX for more information.
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 4 comments… read them below or add one }
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
Hi,
You may delete soft link using below command
# unlink {link name};
I could never get the order of the two things in “ln -s X Y” right, and ended up clobbering Ys with dangling links to X. So I wrote this little sanity-checker wrapper around it: lns.
It does stuff like making sure that your link won’t overwrite anything, and that it’s a link to something that already exists. Just common sense, but sense that I didn’t have.
lns: http://interglacial.com/~sburke/pub/lns.html
I’ve been using it for ten years, and I think it’s the most useful program I’ve ever written. (crontab2english is a runner-up, people tell me)
If you want to create a symbolic link for multiple files under one directory e.g. want to have all jar files of java to ant lib you can use this feature of linux. This will solve your purpose as well as save the space with reduced redundancy.
One can use for loop to create a sym link of multiple files of a directory as below,