Low Orbit Flux Logo 2 F

Linux Create Hard Links and Soft Links (Symbolic)

We are going to show you how to create hard links and soft links. To create a soft link just use the “-s” parameter. Otherwise it will just be a hardlink.

To create a hard link you can use the following command:


ln sourceFile.txt  linkToFile.txt

To create a soft link you can use the following command:


ln -s sourceFile.txt  linkToFile.txt

Soft links can be specified using either relative or absolute path. Using a relative path can be useful if both the link and the original file are within the same directory and that directory might be moved or changed.


ln -s /home/user1/test1.sh  current.sh
ln -s ../../test1.sh  current.sh

Absolute paths are useful if you want to move the link but don’t want to move the original file.

Soft links are not the same as hard links. Knowing the difference is important.

Linux Create Hard Links and Soft Links (Symbolic)

A soft link is also referred to as a symbolic link.

A soft link is just a pointer to a filename. The actual file name points to the data on disk.

Creating a hard link basically just creates another name for the same data on disk. A file name is just a name that points to some data on a disk. It is probably easier to think of it as an alternate name or alternate directory entry and not just a link.

A hard link is basically the same thing as the original name for a file.

Deleting the original file will not actually delete the file if it still has hard links pointing to it. To delete a file all hard links to the file need to be deleted.

You show the number of hard links that a file has with the ls command. The second column will show you the number of links.


ls -l test1.sh

You can find all hard links to a file like this:


find /home -xdev -samefile test1.txt

You can delete them all ( including the original ) like this:


find /home -xdev -samefile test1.txt | xargs rm