Linux provides different ways to work with files. Generally, a file is accessed directly. But there are some situations to create links that are used as original file.
As we will see in the following of this tutorial there are two types of links named soft link and hard link. They are both links but their behavior are different from each other.
Hard links are two-way links, where a change in the link will affect the original file and also the reverse, is true. There are some restrictions for hard links.
- Hard links can not link directories
- Hard links can not link to other files systems than source like two separate partitions.
Soft or Symbolic Link
Soft links are one way there a change in the link will not affect the source file. ln command is a Linux tool to manage symbolic links.
ln becomes very useful when there is file restrictions or file name related issues.
ln Command Syntax
As we see ln syntax is like below.
ln OPTION TARGET LINK_NAME
- `OPTION` provides different behavior like a soft and hard link for the ln command.
- `TARGET` is the file or folder we want to create link.
- `LINK_NAME` is the new link name and path we will create.
ln Command Help
We can list help information about the ln command with the
--help option like below.
$ ln --help
Create Hard Link
We can create hard links by using
ln command. We do not need to provide many options. We will just provide the source and destination or hard link path. In this example, we will create a hard link named
MyInput to the file named
myinput.py like below.
$ ln myinput.py MyInput
Create Symbolic Link
Linux provides a mechanism named symbolic link. It can be created a soft link like below. In other ways, we call it creating symbolic link Linux. In this example, we will create a symbolic or soft link name
RealInput where it will point to the
$ ln -s myinput.py RealInput
We can see that symbolic link files are shown in a different color if bash coloring is enabled. It is shown that
RealInput is linked to the file
Remove Symbolic Link
Removing symbolic links is as easy as removing a file. Rm command is used to remove the symbolic link but the original file stays without effecting this. We will remove
RealInput soft link.
$ rm RealInput