How to Use Symbolic Link in Linux: A Short Guide

Oodo Roland Uchenna
8 min readFeb 11, 2023

--

Are you tired of constantly navigating through multiple directories just to access a single file in Linux? Say goodbye to that frustration with a symbolic link!

This handy feature allows you to create shortcuts to files or directories, making it easier to access and manage your files. In this short guide, you will learn how to create and use symbolic links in Linux, and how it can simplify your daily work.

Don’t just take our word for it — according to a recent survey of Linux professionals, over 80% of them use symbolic links on a regular basis. So, if you want to join the ranks of the most efficient Linux users, keep reading to find out how to use symbolic links like a pro!

What is Symbolic Link?

A symbolic link, also known as a symlink or soft link, is a special type of file that acts as a shortcut to another file or directory on a computer.

It is like a virtual pointer to another file, which allows you to access that file from multiple locations without having to physically copy it.

Think of it like a signpost pointing you in the direction of another file. When you follow the link, it takes you to the file or directory it is linked to. If the original file changes, the changes will be reflected when you access the symbolic link.

For example, imagine you have a file called “important_document.txt” in your document folder.

You can create a link to that file on your Desktop so that you can access the file from either location.

Symbolic links are particularly useful for managing and organizing your files and directories, especially if you have a lot of files and need to access them from different locations.

They are also useful for managing software and configuration files, where you may want to switch between different versions of a file or reference a file from multiple locations.

In short, symbolic links are a flexible and convenient way to manage and access your files and directories in Linux.

Why Use Symbolic Link?

Here are some reasons why you might use symbolic links:

  • File and directory organization: Symbolic links allow you to create a shortcut to a file or directory in another location, which can help you better organize your files and directories.
  • File sharing: Symbolic links can be used to share files between different parts of a file system or between multiple file systems.
  • Data redundancy: By creating a link to a file, you can ensure that multiple parts of your file system have access to the same data, reducing the risk of data loss in the event of a file becoming unavailable.
  • Cross-platform compatibility: Symbolic links are supported by most modern operating systems, which makes them a useful tool for linking files and directories between different platforms.
  • Application compatibility: Some applications require certain files or directories to be located in specific locations in order to work correctly. By using symbolic links, you can ensure that the required files and directories are in the correct location without having to physically move them.

Creating Symbolic Link

The ln Command

The ln command is a Linux and UNIX command that is used to create links between files and directories.

A link is a reference to another file or directory that allows you to access the contents of the linked file or directory as if they were located in the same location as the link.

From the picture above, you can create a symbolic link (shortcut) on the Desktop (depending on where you want to access it from) that points to the frequently used directory for easy access.

There are two types of links that can be created using the ln commands:

  • Symbolic links and
  • Hard links

A symbolic link as explained earlier is a reference to another file or directory that contains the path to the target file or directory.

It acts like a shortcut to the target file or directory, and if the target file or directory is deleted, the link will become broken, and will not be able to access the contents of the target file or directory.

Here is an example of how to create a symbolic link using the ln command:

ln -s /path/to/target /path/to/link

In this example, the -s option is used to specify that a symbolic link should be created, and /path/to/target is the path to the file or directory that you want to link to, and /path/to/link is the path to the symbolic link that you want to create.

If you have a directory called “books” in the directory “/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog”,

You could create a link to it in your Desktop directory with the following command:

ln -s ~/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog/books ~/Desktop/Books

Output:

Now, when you access ~/Desktop/Books, it will take you to ~/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog/books.

And there you have it, the ln command in Linux just saved you a significant amount of time and reduced your typing effort.

Using Symbolic Links

Navigating to Files and Directories

To navigate to the target file or directory that a symbolic link points to, you can simply treat the link as if it were the actual target file or directory.

This means you can use the symbolic link in the same way you would use the actual target file or directory.

For example, let’s say you have a symbolic link named Books from the example above that points to the directory ~/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog/books. You can access the contents of "Books" by navigating to the Books shortcut created on the Desktop by using the cd command in a terminal:

cd ~/Desktop/Books

This will change the current working directory to the target directory, ~/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog/books, as if you had navigated to it directly.

Updating and Deleting Files

When you update or delete a file in a directory that a symbolic link points to, those changes will be reflected in the link.

For example, the symbolic link Books, we created above that point to ~/Desktop/alx-system_engineering-devops/0x01-shell_permissions/blog/books

adding a new file inside the link will automatically add the new files to the target directory as well.

To delete a symbolic link, you can use the rm command in a terminal:

rm ~/Desktop/Books

This will remove the symbolic link “Books” we created above, but it will not affect the target file or directory that the link points to.

It is important to note that deleting the target file or directory that a symbolic link points to will make the symbolic link invalid, as it will no longer have a target to point to.

In this case, the symbolic link will become a broken link and will no longer work as expected.

Limitations and Considerations

When using symbolic links, there are some limitations and considerations to keep in mind:

  • Symbolic links can only be created on the same file system as the target file or directory. This means that symbolic links cannot be used to link to files or directories on different file systems.
  • If the target file or directory is deleted, the symbolic link will become broken and will no longer work as expected.
  • Some applications and scripts may not work correctly with symbolic links, especially if the link is used as an input or output file. In these cases, it may be necessary to use the full path to the target or directory instead of the symbolic link.
  • If you have multiple symbolic links pointing to the same target file or directory, changes made to the target will be reflected in all of the symbolic links.
  • Certain file system operations, such as copying or moving, may not work as expected with symbolic links. For example, copying a shortcut will create a copy of the link, not a copy of the target file or directory.

Overall, symbolic links can be a useful tool for organizing and accessing files and directories in Linux, but it is important to use them carefully to avoid unintended consequences.

Quiz

What happens to the symbolic link if the original file is deleted or moved to a different location?

a. The symbolic link remains unchanged

b. The symbolic link is automatically updated

c. The symbolic link becomes broken

d. None of the above

Ready to test your knowledge of the ln command in Linux?

Drop your answers in the comment section and let’s see who nails it! Prove that you’re a symbolic link master and share your score with the community

If you’re having any difficulties or need additional guidance, don’t hesitate to post your challenges on our forum at FORUM.

Conclusion

Symbolic links are a powerful tool in Linux that allows you to create links between files and directories, making it easier to access and manage your files.

Create a symbolic link to create an alias for a target file or directory and use it just like the actual file or directory. To create a symbolic link in Linux, you can use the ln -s command, followed by the target file or directory and the desired link name.

When using symbolic links, it’s important to be aware of their limitations and considerations. Such as the fact that they can only be created on the same file system as the target file or directory.

And also, changes made to the target file or directory will be reflected in the shortcut created.

Overall, symbolic links can be a useful way to organize and access your files in Linux, but it’s important to understand how to use them properly to ensure that they work as expected.

Additional Resources

--

--