Receive all updates via Facebook. Just Click the Like Button Below

Hard Link and Soft Link in Linux

Hard Link is a mirror copy of the original file. Hard links share the same inode.
Any changes made to the original or Hard linked file will reflect the other.
Even if you delete any one of the files, nothing will happen to the other.
Hard links can't cross file systems.

Soft Link is a symbolic link to the original file. Soft Links will have a different Inode value.
A soft link points to the original file. If you delete the original file, the soft link fails. If you delete the soft link, nothing will happen.
Hard links can cross file systems.

Difference between Hard Link and Soft Link in Linux

Lets learn the difference with an example

Example: Create a file " original-file.txt "

:~/test$ echo "Learning about Hard and Soft Link" > original-file.txt
:~/test$ cat original-file.txt
Learning about Hard and Soft Link

Now lets create a Hard Link

Example: HardLink-file.txt

:~/test$ ln original-file.txt HardLink-file.txt
:~/test$ ls -il
total 8
840388 -rw-r--r-- 2 telson telson 33 2009-05-18 09:16 HardLink-file.txt
840388 -rw-r--r-- 2 telson telson 33 2009-05-18 09:16 original-file.txt

Now lets create a Soft Link

Example: SoftLink-file.txt

:~/test$ ln -s original-file.txt SoftLink-file.txt
:~/test$ ls -il
total 8
840388 -rw-r--r-- 2 telson telson 33 2009-05-18 09:16 HardLink-file.txt
840388 -rw-r--r-- 2 telson telson 33 2009-05-18 09:16 original-file.txt
840186 lrwxrwxrwx 1 telson telson 17 2009-05-18 09:23 SoftLink-file.txt -> original-file.txt

From the above ls -il result, you find the same inode for " HardLink-file.txt " and " original-file.txt ".
Inode value is different for the soft link " SoftLink-file.txt ".

Now lets try editing the original file:

Example:

:~/test$ cat >> original-file.txt 
Editing this file to learn more!!

:~/test$ cat original-file.txt 
Learning about Hard and Soft Link
Editing this file to learn more!!

:~/test$ cat HardLink-file.txt 
Learning about Hard and Soft Link
Editing this file to learn more!!

:~/test$ cat SoftLink-file.txt 
Learning about Hard and Soft Link
Editing this file to learn more!!
          

Now lets try changing the permissions:

Example:

:~/test$ chmod 700 original-file.txt 
:~/test$ ls -il
total 8
840388 -rwx------ 2 telson telson 67 2009-05-18 09:34 HardLink-file.txt
840388 -rwx------ 2 telson telson 67 2009-05-18 09:34 original-file.txt
840186 lrwxrwxrwx 1 telson telson 17 2009-05-18 09:23 SoftLink-file.txt -> original-file.txt
          

From the above example its clear that changing the permission of " original-file.txt " will update the permission set of " HardLink-file.txt ".
The soft link remains unchanged.

Now lets try deleting the original file.

Example:

:~/test$ rm original-file.txt 
:~/test$ ls -il
total 4
840388 -rwx------ 1 telson telson 67 2009-05-18 09:34 HardLink-file.txt
840186 lrwxrwxrwx 1 telson telson 17 2009-05-18 09:23 SoftLink-file.txt -> original-file.txt

:~/test$ cat HardLink-file.txt 
Learning about Hard and Soft Link
Editing this file to learn more!!

:~/test$ cat SoftLink-file.txt 
cat: SoftLink-file.txt: No such file or directory
          

So removing the original file will affect the Soft link. The Soft link fails.
Hard link is unaffected.

Related posts:

Advertise here

picture picture

Follow us

picture

- Tech-Tutorials twitter.com/techcuriosity

Like us

About Techcuriosity

I am Telson, the webmaster of Techcuriosity.com and through this site, I share my knowledge and curiosities in the Tech World.


What We Offer

  • What is ..?
  • How to ..?
  • Difference between ..?
  • How .. works?
  • Get in Touch

    techcuriosity@gmail.com
    UAE : +971-55-83-566-04
    India : +91 - 9526244217

    picture picture

    Our Partners

  • Website Design Dubai
  • SEO Link Exchange
  • picture

    picture