Sharing is caring!

In systems based on Unix, links act as a connecting bridge between the original data present in the disk and the files and directories. For example, the name of a file is long. Moreover, the name is unchangeable.

In such cases, the importance of pointers arises. Links are pointers that identify or provide references to the file or the contents of the file. The two most common links used in Unix are hard and soft links.

Key Takeaways

  1. Soft links, or symbolic links, point to a file or directory by its path, while hard links point to the data on the disk.
  2. Deleting a target file will not affect hard links but render soft links useless.
  3. Soft links can link to files or directories across different filesystems, while hard links cannot.

A soft link (symbolic link) in Unix-based operating systems is a reference to a file or directory that can be moved or deleted without affecting the original file. A hard link is a duplicate name for a file that shares the same inode and data as the original file.

Soft Link vs Hard Link In Unix In OS

A soft link in Unix & OS is simply a file that comes out of another target file. Thus, the symbolic link actually shows either a relative or an absolute path to the target file.

These links act as pointers only to file names and are in no way related to their data or contents. One can use soft links to link any directory or file. Soft links to an original file can also be identified as its alias. 

Hard link in Unix & OS points to the target file and provides it with an additional name. The hard link has the same contents as that of the original file.

Thus, the contents and data of the file remain viewable even after the deletion or removal of the original file. Hard links’ performance and flexibility are higher than those of soft links.

Also Read:  KSH vs Bash: Difference and Comparison

Moreover, these links don’t consume any extra space in the operating system.

Parameters Of ComparisonSoft Link In Unix In OSHard Link In Unix In OS
DefinitionSoft links in Unix & OS refer to the files which are interconnected by links having varying inode numbers.Hard link in Unix & OS refers to the files which are interconnected by links having the same inode number.
SpeedTheir functioning speed is slow.Their functioning speed is fast.
AdvantagesThe advantages of soft links are:Every file, file symbol object can be associated with a soft link.You can easily have varying metadata for the soft link with soft links.The advantages of hard links are:Deletion, renaming, or moving target files to new locations doesn’t make the hard links worthless.It becomes more efficient and functional while maintaining varying inodes.
DisadvantagesThe disadvantages of soft links are:Deletion or moving of target files to new locations makes the soft links worthless.It isn’t functional in all software due to some security concerns.The disadvantages of hard links are:Hard links are difficult to be handled and dealt with.
CommandThe command used for creating soft link in Unix & OS is:$ ln -s [original filename] [link name]The command used for creating a hard link in Unix & OS is:$ ln [original filename] [link name]

A soft link, most popularly known as the symbolic link and symlink, refers to a file that resembles the file shortcut feature and paves a path to another directory or file. Soft links crawled into operating systems in 1978.

The operating system identifies the text string of the soft link, which directs towards a target file or directory. 

The existence of a soft link is independent of the existence of the target file. The target file continues to exist and open properly even after the deletion of the soft link.

However, if the name or address of the target file is modified in any way, the soft link remains unaffected and continues to direct the path to a location that doesn’t exist. In such cases, the soft link is known as the dangling link. 

Also Read:  Microsoft Unit Test vs xUnit: Difference and Comparison

Moreover, a soft link provides a path that directs towards the original target file. It has no connection with the contents of the file. The soft link’s size is exactly the same as that of the name of the target file.

For example, if the target file’s name is abc123, then its soft link’s size will be 6 bytes. If the target file’s name is Zebra 647, then its soft link’s size will be 8 bytes. 

A hard link, also known as a physical link, refers to a directory entry, which serves as the mirror replica of the target file, thereby assigning it a name. Every file has a hard link for itself.

In simple terms, a hard link can be understood as a link that connects a file with its name in the operating system. Although it resembles a soft link in its function as a pointer, it differs in its versatility. 

The size of the hard link is the same as that of its target file. Moreover, on deleting the target file, the hard link remains unaffected.

Thus, unlike soft links, hard links don’t become valueless or dangling links when the name of the target file is modified in any way.

However, in such cases, the hard link will eat up the space of the original file, and thus, in these cases, it seems to be demanding more space.

One can create a hard link with the help of the CreateHardLink function. A file can have numerous hard links associated with it.

Suppose an individual makes changes to the file using a specific hard link, then the attribute information, including the directory entry size, gets updated only for the link the individual used for making the changes.

  1. With a soft link, you can access a target file that has multiple references. However, the soft link fails to identify and trace the target file with multiple names. However, hard links can easily identify and trace such target files with multiple names. 
  2. The soft link becomes valueless after the deletion of the original file. However, the deletion of the original file doesn’t affect the validity of the hard link. It still points to the same file in the recycle bin.
  3. The inode numbers of the soft link and the original file are different. But, in the case of hard links, the inode number of the link is the same as that of the original file.
  4. While a soft link provides a relative path to a file, a hard link doesn’t provide a relative path to the file. 
  5. While soft links have slow functioning speeds in Unix & OS, hard links have incredibly fast functioning speeds in Unix & OS.
References
  1. https://www.usenix.org/event/usenix05/tech/freenix/full_papers/hensbergen/hensbergen_html/
  2. https://cloudflare-ipfs.com/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/System_7.html

dot 1
One request?

I’ve put so much effort writing this blog post to provide value to you. It’ll be very helpful for me, if you consider sharing it on social media or with your friends/family. SHARING IS ♥️

Want to save this article for later? Click the heart in the bottom right corner to save to your own articles box!

By Sandeep Bhandari

Sandeep Bhandari holds a Bachelor of Engineering in Computers from Thapar University (2006). He has 20 years of experience in the technology field. He has a keen interest in various technical fields, including database systems, computer networks, and programming. You can read more about him on his bio page.