Tutorial collegamento simbolico in Linux - Come creare e rimuovere un collegamento simbolico

Un collegamento simbolico (chiamato anche collegamento simbolico) è un tipo di file in Linux che punta a un altro file o una cartella sul tuo computer. I collegamenti simbolici sono simili alle scorciatoie in Windows.

Alcune persone chiamano i collegamenti simbolici "collegamenti virtuali" - un tipo di collegamento nei sistemi Linux / UNIX - in opposizione a "collegamenti reali".

Differenza tra un soft link e un hard link

I collegamenti software sono simili ai collegamenti e possono puntare a un altro file o directory in qualsiasi file system.

Gli hard link sono anche scorciatoie per file e cartelle, ma non è possibile creare un hard link per una cartella o un file in un file system diverso.

Diamo un'occhiata ai passaggi coinvolti nella creazione e nella rimozione di un collegamento simbolico. Vedremo anche cosa sono i collegamenti interrotti e come eliminarli.

Come creare un collegamento simbolico

La sintassi per creare un collegamento simbolico è:

ln -s   

lnè il comando di collegamento. Il -sflag specifica che il collegamento deve essere morbido. -spuò anche essere inserito come -symbolic.

Per impostazione predefinita, il lncomando crea collegamenti fisici. Il prossimo argomento è path to the file (or folder)che vuoi collegare. (Ovvero, il file o la cartella per cui si desidera creare un collegamento.)

E l'ultimo argomento è lo path to linkstesso (la scorciatoia).

Come creare un collegamento simbolico per un file: comando di esempio

ln -s /home/james/transactions.txt trans.txt 

Dopo aver eseguito questo comando, sarai in grado di accedere a /home/james/transactions.txtcon trans.txt. Qualsiasi modifica a trans.txtsi rifletterà anche nel file originale.

Nota che questo comando sopra creerebbe il file di collegamento trans.txtnella tua directory corrente. Puoi anche creare un file collegato in una cartella che collega questo:

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

Ci deve essere una directory già chiamata "my-stuffs" nella directory corrente - altrimenti il ​​comando genererà un errore.

Come creare un collegamento simbolico per una cartella - Esempio di comando

Simile a sopra, useremmo:

ln -s /home/james james 

Questo creerebbe una cartella con link simbolico chiamata "james" che conterrebbe il contenuto di /home/james. Qualsiasi modifica a questa cartella collegata influirà anche sulla cartella originale.

Come rimuovere un collegamento simbolico

Prima di voler rimuovere un link simbolico, potresti voler confermare che un file o una cartella è un link simbolico, in modo da non manomettere i tuoi file.

Un modo per farlo è:

ls -l  

L'esecuzione di questo comando sul tuo terminale mostrerà le proprietà del file. Nel risultato, se il primo carattere è una lettera minuscola L ('l'), significa che il file / cartella è un collegamento simbolico.

Vedrai anche una freccia (->) alla fine che indica il file / cartella a cui punta il simlink.

Esistono due metodi per rimuovere un collegamento simbolico:

Come utilizzare Scollega per rimuovere un collegamento simbolico

La sintassi è:

unlink  

Questo elimina il collegamento simbolico se il processo ha esito positivo.

Anche se il collegamento simbolico ha la forma di una cartella, non aggiungere "/", perché Linux presume che sia una directory e unlinknon può eliminare le directory.

Come utilizzare rm per rimuovere un collegamento simbolico

Come abbiamo visto, un collegamento simbolico è solo un altro file o cartella che punta a un file o una cartella originale. Per rimuovere quella relazione, puoi rimuovere il file collegato.

Quindi, la sintassi è:

rm  

Per esempio:

rm trans.txt rm james 

Notare che provare a farlo rm james/risulterebbe in un errore, perché Linux presumerà che "james /" sia una directory, che richiederebbe altre opzioni come re f. Ma non è quello che vogliamo. Un collegamento simbolico può essere una cartella, ma ci interessa solo il nome.

Il vantaggio principale di rmover unlinkè che puoi rimuovere più collegamenti simbolici contemporaneamente, come puoi fare con i file.

Come trovare ed eliminare collegamenti interrotti

I collegamenti interrotti si verificano quando il file o la cartella a cui punta un collegamento simbolico cambia percorso o viene eliminato.

Ad esempio, se "Transazioni.txt" si sposta da /home/jamesa /home/james/personal, il collegamento "Trans.txt" viene interrotto. Ogni tentativo di accesso al file risulterà in un errore "Nessun file o directory simile". Questo perché il collegamento non ha contenuti propri.

Quando si scoprono collegamenti interrotti, è possibile eliminare facilmente il file. Un modo semplice per trovare collegamenti simbolici interrotti è:

find /home/james -xtype l 

Questo elencherà tutti i collegamenti simbolici interrotti nella jamesdirectory, dai file alle directory alle sottodirectory.

Il passaggio -deletedell'opzione li eliminerà in questo modo:

find /home/james -xtype l -delete 

Avvolgendo

I collegamenti simbolici sono una caratteristica interessante dei sistemi Linux e UNIX.

È possibile creare collegamenti simbolici facilmente accessibili per fare riferimento a un file o una cartella a cui altrimenti non sarebbe conveniente accedere. Con un po 'di pratica, capirai come funzionano a livello intuitivo e ti renderanno molto più efficiente nella gestione dei file system.