Ricerca nel sito web

Come creare collegamenti fisici e simbolici in Linux


Nei sistemi operativi simili a Unix come Linux, "tutto è un file" e un file è fondamentalmente un collegamento a un inode (una struttura dati che memorizza tutto su un file tranne il suo nome e il contenuto effettivo).

Un collegamento reale è un file che punta allo stesso inode sottostante, come un altro file. Nel caso in cui elimini un file, rimuove un collegamento all'inode sottostante. Mentre un collegamento simbolico (noto anche come collegamento software) è un collegamento a un altro nome file nel filesystem.

Leggi anche: Come eseguire la gestione di file e directory

Un'altra importante differenza tra i due tipi di collegamenti è che i collegamenti reali possono funzionare solo all'interno dello stesso filesystem mentre i collegamenti simbolici possono passare attraverso filesystem diversi.

Come creare collegamenti reali in Linux

Per creare collegamenti fisici in Linux, utilizzeremo l'utilità ln. Ad esempio, il comando seguente crea un collegamento reale denominato tp al file topprocs.sh.

ls -l
ln topprocs.sh tp
ls -l

Osservando l'output sopra, utilizzando il comando ls, il nuovo file non è indicato come collegamento, viene mostrato come un file normale. Ciò implica che tp è solo un altro normale file eseguibile che punta allo stesso inode sottostante di topprocs.sh.

Per trasformare un hard link direttamente in un soft link, usa il flag -P come questo.

ln -P topprocs.sh tp

Come creare collegamenti simbolici in Linux

Per creare collegamenti simbolici in Linux, utilizzeremo la stessa utilità ln con l'opzione -s. Ad esempio, il comando seguente crea un collegamento simbolico denominato topps.sh al file topprocs.sh.

ln -s ~/bin/topprocs.sh topps.sh
ls -l topps.sh

Dall'output sopra, puoi vedere dalla sezione dei permessi del file che topps.sh è un collegamento indicato da l: che significa che è un collegamento a un altro nome di file.

Se il collegamento simbolico esiste già, potresti ricevere un errore. Per forzare l'operazione (rimuovere il collegamento simbolico in uscita), utilizza l'opzione -f.

ln -s ~/bin/topprocs.sh topps.sh
ln -sf ~/bin/topprocs.sh topps.sh

Per abilitare la modalità dettagliata, aggiungi il flag -v per stampare il nome di ciascun file collegato nell'output.

ln -sfv ~/bin/topprocs.sh topps.sh
$ls -l topps.sh

Questo è tutto! Dai un'occhiata ai seguenti articoli correlati.

  1. fdupes – Uno strumento da riga di comando per trovare ed eliminare file duplicati in Linux
  2. 5 comandi utili per gestire i tipi di file e l'ora del sistema in Linux

In questo articolo, abbiamo imparato come creare collegamenti fisici e simbolici in Linux. Puoi porre qualsiasi domanda o condividere le tue opinioni su questa guida tramite il modulo di feedback riportato di seguito.