Soft link and Hard link in Linux/UNIX

RakeshRakesh
2 min read

Table of contents

What is a link?

Links are pointers pointing to a file or directory. A link is a shortcut to access a file, similar to a Windows shortcut.

In soft links, we can create links on files and directories. Links enable the creation of references to files and directories.

syntax: ln -s <original-file-path> <link-file-path>

  • Soft links can be created in any filesystem.

  • In soft link, the original file and soft link file have different inode values.

  • We cannot access the data from the soft link file after removing the original file, because the soft link does not have access to any memory.

Creating a soft link:

Here, we created a file named sample.txt and added some contents inside the file.

Now we creating a soft link to the sample.txt file using the ln command with -s flag referring to soft link. To check the inode value use -i flag with ls command. Note the inode values are different for the original file and the soft link file we created.

# creating a soft link
ln -s sample.txt sl_sample.txt

If we make any changes to the original file then the changes will automatically apply to the linked file.

If we delete the original file then the data present in the linked file will be lost automatically. This is because the linked file always points to the original file and the soft link does not access the memory.

The hard link points to the same inode similar to the original file, which means both the original file and the linked file have the same inode value.

syntax: ln <original-file> <linked-file>

  • Hard link should be created in the same filesystem, unlike soft link.

  • We can access the data from the hard link file after removing the original file because the hard link has memory access.

Creating a hard link:

Here, we created a file named sample.txt and added some contents inside the file.

Now we creating a hard link to the sample.txt file using the ln command. To check the inode value use -i flag with ls command. Note the inode values are the same for the original file and the hard link file we created.

If we delete the original file then the data present in the linked file will not be lost. This is because the linked file always points to the inode and the hard link has access to memory. Inodes store information about the file metadata and data block locations.

Thank you.

0
Subscribe to my newsletter

Read articles from Rakesh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Rakesh
Rakesh