Symbolic link
Symbolic links are files that points to another file or directory. It is also called symlink or soft link. It is simply a pointer to the original directory. As a system administrator, we need to have a good understanding of these symlink and its working. In this blog we will see simulating different situations around symbolic link and how things work.
Create symlink
Symlink can be created using ln command as shown below,
#ln -s orginal_directory_path symlink_filename
![]() |
1.3 Inode for files |
When we create or change anything inside the symlink, it will reflect in source/original directory.
Let's try creating and deleting files inside of the symlink to demonstrate same.
Now we are quite clear that contents of symlink are same as the original directory and any change will impact both destination.
![]() |
1.5 Delete files under symlink |
Now we are quite clear that contents of symlink are same as the original directory and any change will impact both destination.
Let's now take it further to change the symlink file itself and see what will happen.
Remove symlink
We can remove a symlink we can use "rm" or "unlink" command. however when using rm command ensure you are not using / in the end as it will remove the contents instead of removing the symlink file.
![]() |
1.6 Remove symlink with rm command |
![]() |
1.7 Remove symlink with unlink command |
Notice that when we try / in the end using unlink comamnd it will throw error saying not a directory, however when we use it with rm it will delete contents. Its always safe to use unlink command to delete a symlink rather than rm comamnd to avoid accidently removing the original files.
![]() |
1.8 Remove original file |
However when we remove the original file tagged to the symlink, will break the symlink to work as shown above.
Symlink allows us to be created in a different filesystem, in this example i have created symlink in a different mount /data whereas the source directory exist in the /home directory.
![]() |
1.9 Filesystem structure used in this blog |
Update symlink
What if we renamed the original directory, let's explore now.
When we rename the original directory the symlink becomes unusable the referenced pointer is no longer exist as it is moved to a different. however all the files are still available in the original directory in the moved place and to access them we can directly go to the original directory using the moved path.
Now to fix this, we need to update the symlink file, this is simply run the symlink command with force option to remove the existing symlink file and create new symlink file with new destination.
#ln -sf /original_directory symbolic_link_file
![]() |
1.11 Update symlink path |
Now everything looks back normal.