A Symbolic link (symlink), which is also known as a soft link, is a particular type of file at the file system level that is used to refer to another file or directory. The Symbolic link includes the path of the target file or directory in Linux systems, which specifies the location of a specific file and directory and makes the management, communication, access, and organization of files in Linux systems more efficient. Creating Symlinks for files in Linux allows you to specify paths for files and directories and store multiple files in a single file.
Linux is an excellent platform for innovation and experimentation. By purchasing a Linux VPS, you can experience a wonderful world where you can efficiently achieve any goal using the Linux terminal environment and powerful Linux tools. As you know, the performance of Linux depends on the powerful terminal. So, to experience a powerful and efficient Linux, becoming an expert in using various Linux commands is a great way. Learning how to create symlinks for files in Linux offers valuable advantages in the optimal management of files and main directories.
This article is a helpful guide to learn how to create a symlink in Linux. But first, we will review the features and advantages of creating a Symlink in Linux.
What are the Link Types in Linux?
There are two types of links in Linux: 1. Symbolic links (Symlinks) 2. Hard links
Both types of links are used to create links between files and directories and have slight differences in functionality, which we will explain briefly:
Symbolic Links (Symlinks):
Symbolic Links (Symlinks) or Soft links are a particular type of file that indirectly uses Symbolic path to point to files and directories. Soft links or symlinks consist of distinct files with a specific own inode that specifies the path of target files and directories and are broken by moving or deleting the desired file. But it supports pointing to files and directories in different partitions.
Building a hard link to a file or directory makes a new directory entry that uses the same inode as the original. If many names point to the same file, then they are all hard links to the same file. Hard links will continue to work even if the source file is renamed or relocated. Even if there is at least one hard link, deleting the source file will not break the links. But you cannot expect to point to directories or use file systems from hard links.
What are the advantages of creating a symlink for file?
As mentioned, creating symlinks for files has valuable advantages that we will talk about in the following:
Organize files: By creating symlinks for files, you can create a logical structure in the file system, which leads to the organization of files. For example, specify a central location for frequently used files, and you can create a link to these frequently used files from the directory and other files using Symlink.
Easy access to files: By creating Symlink, access to files and directories becomes easier and faster because you will not need to remember and navigate the actual location of frequently used files.
Cross-Platform Compatibility: Symlink is portable across different platforms at the operating system level. That is, when you create a symlink for a file, you can move it to different directories, even other systems.
Path Simplification: Long and complex paths are simplified by creating a Symbolic in the shared location and referring other files to the files in the shared location using a shorter name.
Avoiding Duplication: Creating a symlink to the original file eliminates the need to copy files in different directories. As a result, you will be safe from the challenges caused by occupying disk space.
Updating and Versioning: It is possible to update symlinks to point to a separate file. also, symlinks redirect to the new version without modifying application scripts or configurations.
Avoiding Permission Issues: Symbolics help to bypass permission problems. A user who does not have permission to access a specific file can bypass the restrictions set in accessing the file by creating a symbolic in one place.
What are the key features of symbolic links?
- It is a pointer and reference that includes paths that specify the location of a specific file and directory and points to a file or directory.
- Symlinks are files with their own inode and metadata and do not have a large size.
- It makes the various file systems versatile in the system and uses them to refer to files and directories in the storage space.
- It has the ability to point to directories and is flexible in the creation of shortcuts or aliases to directories.
- By changing the target file and directory (deleting the file, changing the file name, etc.), the symbolic link is automatically broken and updates according to the changes in the target file.
- Symbolic link permissions and ownership are independent of the target file and directory permissions.
- It uses relative or absolute paths to refer to the destination.
Creating Symlinks to file in Linux
lncommand creates links between files and directories in different Linux distributions such as Ubuntu, CentOS, Fedora, etc. Creating a symlink to a file in Linux is not a complicated process; just run the ln command with the -s (–symbolic) option to create a Symlink. Here is the basic syntax for creating a link for a file in Linux Ubuntu, Debian, CentOS, etc.:
ln -s <source_file> <link_name>
- <source_file>: Replace the path or file name for which you want to create a symlink.
- <link_name>: Specify the desired name and location for the symlink.
You will not get output if the link is successfully created between the files.
The ln command creates a new link in the current directory by default if the <link_name> parameter is not specified. So, The <link_name> argument can be left blank.
To create a Symbolic Link (Symlink) in Ubuntu and CentOS use the following command with appropriate arguments:
ln -s /path/to/source_file /path/to/link_name
For example, to create a symbolic link called “myfile_link” in the current directory that points to the “/home/user/documents/myfile.txt” file, run the following command:
ln -s /home/user/documents/myfile.txt myfile_link
To verify that symlink was created successfully, run the following command:
ls -l myfile_link
lrwxrwxrwx 1 linuxize users 23 Nov 2 17:03 myfile_link -> /home/user/documents/myfile.txt
As you can see, the name and path of the file pointed to by the symlink will be displayed in the output after the symbol (->), which indicates the link between the files.
ln command options to create symbolic links in Linux
It is interesting to know that the ln command, like other Linux commands, supports different options to customize its behavior; the most common ln command options are as follows:
-d, -F, -directory: Allows creation of hard link for root user.
-f,-force: Forces the creation of a symlink even if there is already a file or directory with the same name in the specified location and overwrites the destination path of the symlink.
-backup: Makes a backup copy from the target file.
-p: Creates hard links to symbolic links.
-I, -interactive: Warn before removing target files
-s, -symbol: Creates symbolic links in linux.
-n, -non-dereference: Treats the target as a normal file, rather than dereferencing it if it is a symbolic link itself
-v, -verbose: Displays the file names of all linked files and information about the actions performed by the ln command.
Creating Symlinks to a directory in Linux
The basic syntax for creating a symlink in linux for a file and a directory is the same. To create a symlink to the directory in Ubuntu, CentOS, and other Linux distributions, replace the full path to the link name. For example, to create a symlink from /home/user/documents/myfile.txt to the /my_file directory, run the following command:
ln -s /home/user/documents/myfile.txt /path/to/directory/my_file
Troubleshooting “failed to create a Symbolic link” error
You may get a “failed to create Symbolic link” error when creating Symlinks in Linux. This error is usually displayed because a file or directory already exists with the same name in the specified location. To solve this problem, you can run the ln command with the -f (–force) option to rewrite the destination path of the symlink. Use the following example:
ln -s my_file.txt my_link.txt
ln: failed to create symbolic link ‘my_link.txt’: File exists
Overwrite the destination path of the Symlink:
ln -sf my_file.txt my_link.txt
How to remove Symlinks in Linux?
You may no longer need the symlinks you created, or if the source file is deleted or moved to another location, the symlink will be broken; in this situation, you look for a way to remove the symbolic. Don’t worry; Linux meets every need. If you no longer need symlinks, you can use the rm and unlink commands to remove the link between files and directories:
unlink [symlink to remove]
rm [symlink name]
As mentioned in this article, Symlinks are widely used in Linux systems to create shortcuts, provide flexibility in accessing files, simplify the organization and management of files, and facilitate software updates. Symlinks are a valuable tool for managing files in Linux systems.
In this article, you got acquainted with the advantages of creating symlinks for files and directories and learned how to create symlinks in Linux. We hope this article has improved your skills and knowledge in file management. If you need more guidance on using the ln command to create symlinks, you can find more information about the ln command by running the
man lncommand in the Linux terminal.
Thank you for reading this article to the end.