Best answer: How does hard link work in Linux?

A hard link is a file that points to the same underlying inode, as another file. In case you delete one file, it removes one link to the underlying inode. Whereas a symbolic link (also known as soft link) is a link to another filename in the filesystem.

The concept of a hard link is the most basic we will discuss today. Every file on the Linux filesystem starts with a single hard link. The link is between the filename and the actual data stored on the filesystem.

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).

To create a hard links on a Linux or Unix-like system:

  1. Create hard link between sfile1file and link1file, run: ln sfile1file link1file.
  2. To make symbolic links instead of hard links, use: ln -s source link.
  3. To verify soft or hard links on Linux, run: ls -l source link.

A soft link (also known as Symbolic link) acts as a pointer or a reference to the file name. It does not access the data available in the original file.

Soft Link :

Comparison Parameters Hard link Soft link
File system It cannot be used across file systems. It can be used across file systems.

A hard link is a file that represents another file on the same volume without actually duplicating the data of that file. … Although a hard link is essentially a mirrored copy of the target file that it is pointing to, no additional hard drive space is required to store the hard link file.

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 ).

A hard link will never point to a deleted file. A hard link is like a pointer to the actual file data. And the pointer is called “inode” in file system terminology. So, in other words, creating a hard link is creating another inode or a pointer to a file.

Hard links are more forgiving when you delete a file; soft links take up less data, but soft links don’t store the actual data, or the location of the original file. Both types of links have their own quarks and uses. Creating them from the command line is easy.

To create a symbolic link, use the -s ( –symbolic ) option. If both the FILE and LINK are given, ln will create a link from the file specified as the first argument ( FILE ) to the file specified as the second argument ( LINK ).

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.

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.

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