This short post explains what links are and the difference between symbolic (soft) and hard links. A link is a mechanism that allows several filenames to refer to a single file on disk. There are two kinds of links:
1. hard links.
2. symbolic (soft) links.
– A hard link associates two (or more) filenames with an inode.
– Hard links all share the same disk data blocks while functioning as independent directory entries.
– Hard links may not span disk partitions, since inode numbers are only unique within a given device.
– A symbolic link is a special file type which points to another file.
– The contents of this special file is the name of the file that it points to.
– Symbolic links are created by the “ln -s“” command.
– Once a file which is pointed to by a symbolic link is deleted, the link still points to it, leaving a hanging link.
– You can use the find command to locate symbolic links:
# find ./* -type l -ls
1. Consider a file ‘example’ to which there is a hard link ‘hlink’ and a symbolic link ‘slink’. Check the contents of the directory for the file ‘example’:
$ ls -li example 17920190 -rw-rw-r--. 1 user user 0 Nov 18 03:19 example
2. Command to create a hard link to ‘example’ is:
$ ln example hlink
3. Command to create a symbolic link to ‘example’:
$ ln -s example slink
4. Check the contents of the directory again:
$ ls -li 17920190 -rw-rw-r--. 2 user user 0 Nov 18 03:19 example 17920190 -rw-rw-r--. 2 user user 0 Nov 18 03:19 hlink 16836022 lrwxrwxrwx. 1 user user 7 Nov 18 03:21 slink -> example
Notice that both ‘example’ and ‘hlink’ refer to the same inode, but ‘slink’ refers to a different inode.
Difference Between hard link and soft link
Here is a short table of comparison between soft links and hard links.
|Parameter||Soft Link||Hard Link|
|Length||Same as original filename||Same as original file length|
|Inode||new inode||Same as original file|
|Restrictions||None||Same file system; can’t be a directory|
|Space||Length name plus inode||Directory entry|
|Original Deleted||Original file remains||File remains until last link is deleted|