Difference between Hard Link and Soft Link:
-
Lets learn the differnce 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.
No comments:
Post a Comment