Hard Link and Soft Link are the two words which will be heard when you are using Linux (any of it’s distro’s).
what is a hard link?
before that you need to know what is inode.(pronounced as “I node”) a concept of unix-like OS’s
In simple terms inode is a data structure which stores file attributes and disk block locations (simply details about a file object like metadata and permissions etc..,)
Now imagine a situation where you have a file (any type of file). you want to create a replica of that file such that whatever changes that are made in replica must be effected in original file or even vice-versa (also replica and original file may be in different directories but on one system ) i.e it is possible to create a number of different names that all refer to the same contents
when you are in above situation then you need to think of “Hard Links”.A hard link is a replica of another file which points to the original file using “inode numbers” . Commands executed upon any of these different names will then operate upon the same file contents.
Multiple directory entries may map to the same inode On non-Unix systems that do not allow such multiple mappings, you’d just call such mappings “files”.
To create a Hard Link —>open terminal then type command
ln old-filename new-filename
where ln – make links between files ( type ” man ln ” in terminal)
Note:– If you want to delete a file or hardlink then you can apply “rm” command but to completely wipe out the hardlinks and original file you need to delete all hardlinks and original file also i.e deleting one hardlink or original file wont delete completely your file contents
also you cannot create hardlinks for directories.
Disadvantage of Hard Link is when your using NFS and want hard links on different systems then no it’s not possible –here comes symbolic-links or symlinks
what is symbolic link?
A symbolic link, also termed a soft link, is a special kind of file that points to another file, much like a shortcut in Windows or a Macintosh alias.
that is symbolic link is just a shortcut when you create a symbolic link for a file then the symbolic by itself doesnot consists of any of file contents except “Name “(i.e just try to relate to windows shortcuts ..,when you create a desktop shortcut in windows that doesn’t mean that particular directory or file or software is going to be copied to dekstop but just a shortcut icon is created–soft link or symlink is the same)
the advantage of sym-links over hard links is that when you want to create sym-links of files on other system using NFS then this is very useful unlinke hardlinks
Also, when you delete the original file, symbolic links to that file become unusable, whereas hard links preserve the contents of the file.
to create a symlinks:-
ln -s sourcefilename yourfilename
Note: If you delete the source file or move it to a different location, your symbolic file will not function properly. You should either delete or move it. If you try to use it for other purposes (e.g., if you try to edit or execute it), the system will send a “file nonexistent” message.