Creating SymLinks in Linux

A SymLink in Linux is a special kind of file that points to an actual file or directory, basically a shortcut, but a little different as a symlink is an actual pointer to the source file or directory. Symlinks can be very useful for example if you want to version files you can bump a version app_v2 but just have a symlink that refers app_latest that just references the latest version.

ln -s /path/to/source /path/to/symlink

Some useful SymLink options are:

-f   If the target file already exists, then unlink it and force the link

-n   Useful with the -f option, replace the symlink that might point to a directory

One important thing to remember is that you must use the full path when creating symlinks and not the relative paths. For example if you have this as your filesystem

> ls
image.png

We want to create another directory (folder) called pics that contains a symlink to image.png within it.

> mkdir pics

> ls
image.png
pics

If we tried to symlink just using relative paths the symlink would be broken:

> ln -s image.png ./pics/image.png

Instead, we should use the full path and in our case we can use the $PWD value which expands to our present working directory:

> ln -s $PWD/image.png $PWD/pics/image.png

Another option is to actually change directories into the pics directory and create the symlink from there:

> cd pics
> ln -s ../image.png image.png

Read more about it here

Instagram Post