Skip to content

'Soft Link'/'Symbolic Link'/Symlink vs Hard Link - What is the differences?

  • Soft link is a refference to a file.
  • Whatever is added in symlink file (child) will be added to parent file and the other way around.
  • If parent file is removed then the child file content be unavailable.
$ echo version_1 > demo_file_1
$ ln -s demo_file_1 demo_file_2 # demo_file_2 will be created as soft link file type
$ ls -lA
-rw-r--r--. 1 alex alex  30 Feb 18 14:04 demo_file_1
  lrwxrwxrwx. 1 alex alex  11 Feb 18 13:59 demo_file_2 -> demo_file_1
# /\
# symbolic link type

$ cat demo_file_1
version_1
$ cat demo_file_2
version_1

$ echo version_2 >> demo_file_1
$ echo version_3 >> demo_file_2

$ cat demo_file_1
version_1
version_2
version_3

$ cat demo_file_2
version_1
version_2
version_3

$ rm demo_file_1
$ cat demo_file_2
cat: demo_file_2: No such file or directory # Symlink rely on parent file
  • Refferences same data across all files that are linked together
$ echo version_1 > demo_file_1
$ ln demo_file_1 demo_file_2 # demo_file_2 will be created as hard link type file
$ ls -lA
-rw-r--r--. 2 alex alex 10 Feb 18 14:29 demo_file_1
-rw-r--r--. 2 alex alex 10 Feb 18 14:29 demo_file_2
#           /\
#    amount of hard links

$ cat demo_file_1
version_1
$ cat demo_file_2
version_1

$ echo version_2 >> demo_file_1
$ echo version_3 >> demo_file_2

$ cat demo_file_1
version_1
version_2
version_3

$ cat demo_file_2
version_1
version_2
version_3

$ rm demo_file_1
$ cat demo_file_2 # hardlink does not rely on other linked files 
version_1
version_2
version_3