Creare un link simbolico (o symbolic link) su un sistema Linux

Un link simbolico su Linux è un collegamento a un file o a una cartella, questo è simile a un collegamento su un sistema Windows.

Pubblicato da ,
Ultima modifica

Un link simbolico (symbolic link) su Linux può essere inteso come una scorciatoia per giungere ad un file o ad una cartella, un pò come avviene su un SO Windows.

La sintassi per creare un link simbolico è la seguente

$ ln -s <percorso del file o della cartella da collegare> <percorso del collegamento da creare>

ad esempio

$ ln -s /home/user/image /home/user/folder/

in questo caso la cartella da collegare è "/home/user/image", mentre il percorso del collegamento da creare è "/home/user/folder/", se lanciamo il comando ls -l nella cartella /home/user/folder/ avremo il seguente risultato

$ cd /home/user/folder/ && ls -l
$ lrwxrwxrwx 1 user user 17 gen 8 13:36 image -> /home/user/image

il link simbolico viene indicato con una freccia, cioè sta ad indicare che la cartella "image" punta alla cartella /home/user/image, in particolare non è obbligatorio usare percorsi assoluti come nell'esempio precedente ma è anche possibile usare percorsi relativi, ad esempio una tilde (~) rappresenta il percorso assoluto della directory home dell’utente corrente, quindi per l'esempio precedente possiamo scrivere

$ ln -s ~/image ~/folder/

è anche possibile creare più link simbolici in una sola volta, ad esempio

$ ln -s ~/image ~/icons ~/folder/

lanciando il comando ls -l nella cartella ~/folder/ avremo il seguente risultato

$ lrwxrwxrwx 1 user user 17 gen 8 13:55 icons -> /home/user/icons
$ lrwxrwxrwx 1 user user 17 gen 8 13:36 image -> /home/user/image

Per cancellare un link simbolico si usa il comando rm, ad esempio se volessimo cancellare "icons -> /home/user/icons" basta lanciare da CLI il seguente comando dalla directory corrente (~/folder/)

$ rm icons 

anche in questo caso è possibile cancellare più link simbolici in una sola volta lanciando da CLI il segunete comando dalla directory corrente

$ rm icons image

sempre riguardo il comando rm, è possibile usare l'opzione -r che sta ad indicare recursive, in questo caso se ci sono delle sottocartelle, anche queste saranno cancellate.