Linux has two kinds of file system links: symbolic links and
hard links.
A symbolic link — also called a soft link or symlink —
resembles a Windows shortcut. A symlink is a little file
that contains the pathname of another object on the
filesystem: a file, a directory, a socket, and so on —
possibly even the pathname of another link. This pathname
can be absolute or relative. To make a symlink, use ln with
the -s option. Give the name of the target first, then the
name of the link.
# ln –s existing-file-name link-name
We can still edit the original file by opening the symbolic
link, and changes we make doing that will "stick." But if we
delete the symbolic link, it has no impact on the original
file at all. If we move or rename the original file, the
symbolic link is "broken," it continues to exist but it
points at nothing.
A hard link isn’t itself a file. Instead, it’s a directory
entry. It points to another file using the file’s inode
number. Means both have same inode number. Any changes to
the original file will get reflected in the link file also
as both are same.
# ln existing-file-name link-name
To give a file more than one name or to make the same file
appear in multiple directories, you can make links to that
file instead of copying it. One advantage of this is that a
link takes little or even no disk space. Another is that, if
you edit the target of the link, those changes can be seen
immediately through the link.