Che cos'è un collegamento simbolico (Symlink)? Come crearne uno su Linux
Annuncio pubblicitario
Come utente di computer, se dovessi definire un collegamento, probabilmente diresti che è un puntatore a un file, una cartella o un'app, giusto? È corretto.
Ma quella breve definizione non racconta affatto l'intera storia. Implica che tutte le scorciatoie sono uguali quando non lo sono. Hai quasi una manciata di tipi di scorciatoie. Ci concentreremo sul link simbolico di seguito. Si chiama anche un collegamento simbolico o un collegamento software e useremo i termini in modo intercambiabile.
Vediamo cos'è un collegamento simbolico, come creare un collegamento simbolico su Linux, macOS e Windows, perché è necessario questo tipo speciale di collegamento e altro ancora.
Che cos'è un collegamento simbolico?
È vero che un collegamento simbolico è un file di scelta rapida. Ma è diverso da un collegamento standard che, ad esempio, un programma di installazione del programma ha inserito sul desktop di Windows per rendere il programma più semplice da eseguire.
Certo, facendo clic su uno dei due tipi di collegamento si apre l'oggetto collegato, ma ciò che accade sotto il cofano è diverso in entrambi i casi, come vedremo in seguito.
Mentre un collegamento standard punta a un determinato oggetto, un collegamento simbolico fa apparire come se l'oggetto collegato fosse effettivamente lì. Il computer e le app su di esso leggeranno il collegamento simbolico come oggetto di destinazione stesso.
Su macOS, ne hai la prova sotto forma di un messaggio "file esiste" che appare quando provi a creare un link simbolico nella stessa posizione dell'oggetto originale. Anche se provi a spostare il link simbolico nella stessa posizione dopo averlo creato altrove, viene rinominato come copia.
Collegamenti simbolici e scorciatoie standard
Supponiamo che tu abbia una determinata cartella sul tuo disco rigido che desideri sincronizzare con Dropbox senza spostare la cartella stessa su Dropbox.
In questo caso, creare un collegamento alla cartella in Dropbox non ha senso. Il collegamento funzionerà sul dispositivo su cui è stato creato. Dropbox sincronizzerà anche il collegamento. Tuttavia, il file di collegamento sincronizzato non è valido quando si accede da un altro computer, ovvero non porta da nessuna parte.
Ora, se quella scorciatoia fosse un collegamento simbolico, non dovresti affrontare questo problema. Questo perché Dropbox legge il link simbolico come cartella effettiva e, di conseguenza, sincronizza i dati da quella cartella. Puoi quindi accedere alla cartella e al suo contenuto su tutti i tuoi dispositivi su cui è abilitata la sincronizzazione di Dropbox, anche se la cartella originale non fa parte del tuo Dropbox.
Tieni presente che, sia che si tratti di una scorciatoia regolare o di un collegamento simbolico, l'eliminazione non avrà alcun impatto sull'oggetto originale.
Perché hai bisogno di collegamenti simbolici?
In generale, è una buona idea creare collegamenti simbolici anziché scorciatoie quando si desidera:
- Accedi a un file da più posizioni senza creare copie e senza utilizzare molto spazio su disco. (I collegamenti simbolici hanno una dimensione di pochi byte.)
- Mantenere versioni diverse di un file assicurando che qualsiasi puntatore ad esso porti sempre alla versione più recente o aggiornata. (Questo funziona perché un collegamento simbolico rimane attivo anche quando si sostituisce il file di destinazione con un altro file con lo stesso nome.)
- Spostare i dati dall'unità C: \ su, diciamo, su un disco rigido secondario senza interrompere le funzioni del sistema o delle app che richiedono che tali dati si trovino sull'unità C: \.
Probabilmente ti imbatterai in molti altri casi d'uso per i collegamenti simbolici.
Come creare collegamenti simbolici
È possibile creare collegamenti software utilizzando il terminale o la riga di comando. Passeremo agli strumenti punta e clicca più tardi se ti senti a disagio con il terminale.
Su Linux e macOS
Su Linux, è possibile creare un collegamento simbolico per un file o una cartella con questo comando del terminale:
ln -s [/path/to/file] [/path/to/symlink]
Lo stesso comando funziona anche su macOS, poiché macOS è un sistema operativo basato su UNIX come Linux.
Vedi lo screenshot sopra per un comando di esempio.
Il gestore di file nativo in alcuni ambienti desktop Linux ti consente di creare un collegamento software tramite il menu di scelta rapida, quindi potresti voler verificare se l'app di Esplora file ha quell'opzione.
Il famoso file manager Nautilus, fornito in bundle con varie distribuzioni Linux, aveva un'opzione di menu Crea collegamento che ora è scomparsa. Tuttavia, puoi ancora creare un collegamento simbolico in Nautilus tenendo premuti i tasti Ctrl e Maiusc e trascinando il file di destinazione nella posizione in cui si desidera visualizzare il collegamento simbolico. Non preoccuparti, il file originale rimarrà inserito.
Su Windows
Dovrai aprire una finestra del prompt dei comandi come amministratore e digitare il comando seguente per creare un collegamento simbolico:
mklink [/path/to/symlink] [/path/to/file]
Per i collegamenti simbolici alle directory, devi modificare un po 'il comando usando il flag / d :
mklink /d [/path/to/symlink] [/path/to/file]
Se non si desidera lavorare con la riga di comando, è possibile utilizzare uno strumento grafico chiamato Estensione estensione shell per creare collegamenti simbolici. È una delle migliori estensioni di Esplora file di Windows per la gestione dei file.
Nota: il sistema non ti impedirà di creare un collegamento simbolico all'interno di un collegamento simbolico, ma è meglio evitare di farlo. Altrimenti, creerai un ciclo infinito che può causare problemi a servizi di sistema come gli scanner antivirus.
Symlink vs. Alias su macOS
Se hai mai creato alias su macOS, noterai che si comportano in modo molto simile ai link simbolici. Entrambi i tipi di collegamento fanno riferimento al percorso del file o della cartella collegati.
La differenza è che l'alias contrassegna anche l'oggetto collegato con un identificatore chiamato inode (nodo indice). Questo identificatore è univoco per l'oggetto e lo segue nel file system.
Ecco perché l'alias funzionerà bene anche se sposti il bersaglio in una posizione diversa. Provalo con un link simbolico e riscontrerai un errore. (Puoi spostare l'alias e il link simbolico senza problemi, a meno che tu non abbia a che fare con file protetti dal sistema.)
Naturalmente, entrambi i tipi di scorciatoie si dimostreranno inutili se si elimina il file originale o si rinomina una delle cartelle più in alto nella gerarchia.
Non riesci a distinguere tra un alias e un link simbolico perché hai rimosso il tag alias dal nome file dell'alias?
Apri la finestra di ispezione dei file o ottieni il pannello Informazioni per ciascun collegamento e osserva le dimensioni del file nella sezione Generale . Se dice (zero byte sul disco), hai a che fare con un collegamento simbolico.
I collegamenti simbolici (nella cartella corrente) si riveleranno anche quando si usa questo comando terminale:
ls -la
Il comando funziona anche su Linux e vedrai il collegamento simbolico puntare alla posizione dell'oggetto originale.
I collegamenti simbolici sono migliori delle scorciatoie
I collegamenti simbolici potrebbero sembrare inizialmente confusi, ma se ti prendi il tempo per capirli, ti renderai conto che dopo tutto sono abbastanza facili da usare!
Puoi persino creare collegamenti simbolici su Android con Termux, un'app che ti consente di utilizzare la riga di comando di Linux. E sapevi che puoi condividere i file di Google Drive più facilmente con i collegamenti simbolici Rendi i file di Google Drive più facili da condividere con i collegamenti simbolici Rendi i file di Google Drive più facili da condividere con i collegamenti simbolici Vuoi fare copie di un file che rimangano tutti sincronizzati quando le modifiche sono creato per il file principale? Google Drive lo rende facile. Leggi di più ?
Ulteriori informazioni su: collegamento simbolico, terminale.