Linux non ha scorciatoie, ma ha collegamenti simbolici o collegamenti simbolici, come vengono solitamente chiamati. Ma cosa sono esattamente i collegamenti simbolici? E come se ne crea uno? Scopriamolo.
Proveremo i comandi su un'installazione di Ubuntu, anche se la sintassi funziona allo stesso modo su tutte le distribuzioni Linux. È interessante notare che i collegamenti simbolici possono essere creati anche su un PC Mac.
Cosa sono i collegamenti simbolici?
Se vuoi poter accedere a un file da più posizioni, copiarlo semplicemente non è una buona soluzione. Stai sprecando spazio su disco, per non parlare del fatto che diventa difficile tenere traccia delle modifiche a causa della presenza di più file.
In un sistema operativo basato su GUI, potresti superare questo problema creando scorciatoie. Per un sistema operativo basato su CUI (come qualsiasi distribuzione Linux ), la risposta è un collegamento simbolico. Anche Microsoft Windows può sfruttare i collegamenti simbolici in alcune situazioni.
Un collegamento simbolico o un collegamento simbolico è semplicemente un file che punta a un altro file o directory, anche in un file system o una partizione completamente diversa. L'apertura del collegamento simbolico ti dà accesso allo stesso file originale, con eventuali modifiche riflesse anche nel file principale.
Questo vale anche per i permessi: utilizzare chmod per modificare i permessi di un file di collegamento simbolico modificherà effettivamente i permessi del file di destinazione.
Tipi di collegamenti simbolici
I collegamenti simbolici sono noti anche come collegamenti software. Come potrebbe suggerire il nome, non è l’unico tipo di sistema di collegamento file su Linux. I collegamenti reali possono essere utilizzati come alternativa ai collegamenti simbolici in determinati scenari, anche se presentano una serie di restrizioni.
Per cominciare, i collegamenti realisono semplicemente nomi di file che puntano allo stesso inode. Sebbene ciò li renda molto efficienti in termini di archiviazione e velocità di accesso, li limita anche ai file nello stesso file system o partizione. E a causa di una stranezza di come funziona l'accesso alle cartelle in Linux, non puoi nemmeno utilizzare collegamenti fisici per le directory.
Link software o collegamenti simbolici, invece, sono più simili a scorciatoie sul desktop. Ogni soft link è essenzialmente un piccolo file che punta ai dati originali, senza essere direttamente collegato ad essi. Ciò significa che i collegamenti software possono facilmente puntare a file e directory anche su altre partizioni e file system senza alcuna restrizione.
Link fisici e link soft: quale tipo utilizzare?.
I collegamenti software sono la forma di collegamento più versatile poiché possono essere utilizzati sia su file che su directory su più file system senza alcuna restrizione. Ma allora perché abbiamo anche collegamenti fisici? Ti offrono qualche vantaggio rispetto ai link simbolici?
Bene, sulla carta gli hard link sono più efficienti. Poiché utilizzano gli stessi inode, non occupano ulteriore spazio su disco e sono accessibili molto più velocemente rispetto ai soft link. Questo è il motivo per cui molti amministratori di sistema consigliano di utilizzare collegamenti reali ogni volta che è possibile.
Detto questo, tuttavia, gli svantaggi derivanti dall'utilizzo di collegamenti simbolici sono minimi. Soprattutto ai computer moderni non interessano pochi kilobyte di spazio di archiviazione aggiuntivo e, a meno che tu non riempia il sistema con milioni di collegamenti software, la dimensione aggiuntiva del file raramente ha importanza.
Creazione di collegamenti simbolici
I collegamenti simbolici, o meglio i collegamenti ai file in generale, vengono creati utilizzando il comando ln. Per impostazione predefinita, il comando crea collegamenti reali. Per creare un collegamento simbolico, devi aggiungere il flag -s al comando ln.
La sintassi è abbastanza semplice. Il comando ln accetta due parametri: il percorso del file (o della cartella) a cui collegarsi e il percorso del file di collegamento da creare.
In questo modo:
ln -s nomi_utente.txt nomi
Questo creerà un collegamento simbolico chiamato nomi collegato al file di testo user_names. Per vedere se il collegamento simbolico è stato effettivamente creato, basta usare il comando ls.
Come puoi vedere, Ubuntu mostra colori diversi per diverse categorie di file, con le directory indicate in blu scuro e i collegamenti simbolici con un colore blu più chiaro (ciano, in realtà).
Possiamo utilizzare la stessa sintassi anche per creare un collegamento simbolico per la cartella:
ln -s esempi cartella_esempio
Per creare collegamenti simbolici a file e cartelle in altre directory, utilizza semplicemente il loro percorso completo. Ad esempio:
ln -s esempi/esempio3.txt esempio_distante
Limitazioni dei collegamenti simbolici
I collegamenti simbolici sono un ottimo modo per collegare file nel sistema senza dover ricorrere alla creazione di copie, ma presentano dei limiti. Sì, anche se i soft link sono meno restrittivi degli hard link, ci sono comunque alcune cose da tenere a mente..
Innanzitutto, il comando ln in realtà non verifica i collegamenti creati. Ciò significa che è possibile inserire un nome file che in realtà non esiste e non si otterranno errori. L'unico modo per confermare il collegamento è provare a utilizzarlo e vedere se porta al file corretto.
In secondo luogo, mentre l'accesso o la modifica dei permessi del collegamento simbolico modifica le proprietà del file originale, lo stesso non vale per l'eliminazione del file. Puoi tranquillamente rimuovere il collegamento simbolico senza influenzare il file o la directory collegata.
Creazione di collegamenti simbolici in Linux
Il problema più grande nell'usare il terminale per creare collegamenti simbolici è la difficoltà nell'accedere a file importanti sparsi in varie directory. La soluzione intelligente è creare collegamenti simbolici a tali file dalla tua stessa directory home, come scorciatoie sul desktop.
E a differenza dei collegamenti fisici, i collegamenti simbolici possono essere creati facilmente senza alcuna restrizione, anche per la connessione a directory o file in partizioni e file system diversi. Tieni presente che ciò significa anche che un collegamento simbolico potrebbe puntare a un file inesistente: dovrai provare ad accedere al collegamento per verificare se il file esiste.
.