What is the difference between Hard Links and Soft Links
Apart from the concept of pointers in C hardlinks and Softlinks work differently.
Every file has an inode number. This number is like an address similar to that of your house so whoever has it can go your house. So the hardlinks knows about the address and softlink only knows about the house and not the address.
Hardlink points to the inode number of the file so even if you change the name of file hardlink still has the address of the file hence will still have an access of the file. Coming to the part of Softlinks they point to the “file” rather than the address so the moment the original file is moved or renamed or deleted the softlink doesn’t work. Hardlinks work only on the same system or disks. Here we have a benefit that Softlinks can work on within multiple systems and disks. However if a old file is removed and a new files is added with the same name as previous then hardlink will fail but the softlink will still work. Thus hardlinks only worls for files and not for directories. Do remember Linux never allows users to create hardlinks associated with directories and only with files so no need of running smart. Howvever we all face miseries so to links directories one may use softlinks
Lets us simplify about hardlinks and softlinks by examples.
Step 1. Create a directory "linkf" (only for example set yours freely) Move to this new directory and create two new files named as
"sfile" and "hfile". Cat data in each file as shown in below .gif
Step 2. Create a softlink and a hardlink for each of the files above. soflink for "sfile" and hardlink for "hfile"
Step 3. Search the inode number of each link and comparing it with their source files
Step 4. If inode numbers have been found then rename the "sfile" to "sfile_new" and "hfile" to "hfile_new"
Then do a ls command and cat both links.
We observe that the color of soflinks change to red indicating missing or malfunctioning