Un link simbolico (symbolic link), anche definito symlink o soft link, è un collegamento a qualsiasi file o cartella. In Ubuntu, i link simbolici funzionano come una stringa che genera percorsi tra vari file o cartelle. I symlink garantiscono inoltre intrinsecamente che la risorsa a cui puntano esista. Generalmente i symlink sono utilizzati per creare collegamenti a delle librerie, ma possono essere utilizzati per memorizzare varie copie dello stesso file in differenti luoghi.
Tabella dei Contenuti
Tipi di symlink in Ubuntu
Prima di vedere come creare simlink in Ubuntu, dobbiamo essere consapevoli che esistono due tipi di simbolik link che possono essere creati:
- Soft Link: fa riferimento al file o al percorso originale. Per fare un’analogia con quanto siamo abituati ad usare tutti i giorni navigando su internet, un Soft Link funziona similarmente ad un hyperlink.
- Hard Link: con questo tipo di link viene generato un nuovo file collegato ad un inode object che rappresenta il file originale (reference file). Questo equivale a fare una copia di uno specifico file.
Come creare un symlink per una directory in Ubuntu
Gli utenti di Ubuntu possono utilizzare il comando ln
per creare link simbolici. Di default questo comando genera degli hard link, ma si può utilizzare il flag -s
o -symbolic
per forzare la creazione di un soft link. La sintassi del comando è quindi la seguente:
ln -s [source-file-path] [symbolic-link-path]
Per fare un esempio pratico vediamo come creare un soft link per la cartella Download collocandolo sul Desktop. Il comando sarà il seguente:
ln -s /home/alessandro/Download /home/alessandro/Desktop
Come creare un symlink per un file in Ubuntu
Se si vuole creare un symlink per un file specifico, la sintassi è analoga a quella già vista sopra:
ln -s [source-file-name] [symbolic-link-name]
Sempre per rendere più chiara la sintassi, vediamo un esempio pratico in cui generiamo un symlink chiamato apri_testfile che punta al file denominato testfile:
ln -s testfile apri_testfile
Questo comando collocherà il symlink nello stesso percorso dove è collocato il file chiamato testfile.
Come sovrascrivere un symlink esistente in Ubuntu
Per sovrascrivere un symlink esistente possiamo utilizzare il flag -f del comando ln il quale ne forza la rigenerazione.
ln -sf testfile nuovo_apri_testfile
Come rimuovere un symlink in Ubuntu
Ogni link simbolico diventa inutile se il file a cui punta viene cancellato o spostato in altro percorso. In questo caso il symlink può essere cancellato utilizzando il comando <code>rm</code>:
rm [symbolic-link-name]
alternativamente si può utilizzare il comando <code>unlink</code>:
unlink [symbolic-link-name]
Eliminazione di un symlink utilizzando rm
rm
per eliminare il symlink denominato link-to-ada che punta al file chiamato ada-file:
rm link-to-ada
Eliminazione di un symlink utilizzando unlink
In questo secondo esempio ripetiamo l’operazione eseguita sopra utilizzando invece il comando unlink:
unlink link-to-ada
Come individuare e cancellare symlink rotti in Ubuntu
find
seguendo questa sintassi:
find [directory-path] -xtype l
Il flag -xtype
serve per definire il tipo di file oggetto della ricerca ed il parametro l
indica invece che stiamo cercando symlink rotti.
Ricerca di symlink rotti in una specifica directory
Vediamo ora con un esempio chiarificatore come cercare la presenza di symlink rotti nel percorso /home/alessandro
:
find /home/alessandro -xtype l
Ricerca ed eliminazione di symlink rotti in una specifica directory
-delete
che può essere applicato seguendo questa sintassi:
find /home/alessandro -xtype l -delete