What is the difference between soft link and hard link in Linux?

A symbolic or soft link is an actual link to the original file, whereas a hard link is a mirror copy of the original file. If you delete the original file, the soft link has no value, because it points to a non-existent file.

A hard link is merely an additional name for an existing file on Linux or other Unix-like operating systems. Any number of hard links, and thus any number of names, can be created for any file. Hard links can also be created to other hard links.

A symbolic link, also termed a soft link, is a special kind of file that points to another file, much like a shortcut in Windows or a Macintosh alias. Unlike a hard link, a symbolic link does not contain the data in the target file. It simply points to another entry somewhere in the file system.

The reason hard-linking directories is not allowed is a little technical. Essentially, they break the file-system structure. You should generally not use hard links anyway. Symbolic links allow most of the same functionality without causing problems (e.g ln -s target link ).

You can check if a file is a symlink with [ -L file ] . Similarly, you can test if a file is a regular file with [ -f file ] , but in that case, the check is done after resolving symlinks. hardlinks are not a type of file, they are just different names for a file (of any type).

If you find two files with identical properties but are unsure if they are hard-linked, use the ls -i command to view the inode number. Files that are hard-linked together share the same inode number. The shared inode number is 2730074, meaning these files are identical data.

To view the symbolic links in a directory:

  1. Open a terminal and move to that directory.
  2. Type the command: ls -la. This shall long list all the files in the directory even if they are hidden.
  3. The files that start with l are your symbolic link files.

The link command creates a hard link named FILE2, which shares the same index node as the existing file FILE1. Since FILE1 and FILE2 share the same index node, they point to the same data on the disk, and modifying one is functionally the same as modifying the other.

UNIX Symbolic link or Symlink Tips

  1. Use ln -nfs to update the soft link. …
  2. Use pwd in a combination of UNIX soft link to find out the actual path your soft link is pointing out. …
  3. To find out all UNIX soft link and hard link in any directory execute following command “ls -lrt | grep “^l” “.

To remove a symbolic link, use either the rm or unlink command followed by the name of the symlink as an argument. When removing a symbolic link that points to a directory do not append a trailing slash to the symlink name.

Hard link is the exact replica of the actual file it is pointing to . Both the hard link and the linked file shares the same inode . If the source file is deleted ,the hard link still works and you will be able to access the file until the number of hard links to file isn’t 0(zero).

Like this post? Please share to your friends:
OS Today