
Cosa sono i collegamenti
Rendono il file system e la gestione di file e directory più flessibile e sono molto utilizzati. Ecco perché
I collegamenti possono essere di
due tipi: simbolici e fisici. Quelli
simbolici, detti anche symbolic
link o symlink, non sono altro
che particolari file che fanno riferimento
ad un altro file o a un’altra
directory presenti effettivamente
sul disco. I collegamenti simbolici
“verso” file e directory possono
essere creati all’interno dello
stesso file system, ad esempio
una partizione dell’hard disk, ma
anche su aree diverse di dispositivi
di memorizzazione differenti, e,
addirittura possono puntare anche
ad altri link simbolici. Al contrario,
i collegamenti fisici, detti anche
hard link, fanno riferimento al contenuto
del file (cioè ai dati e non
al nome), per cui possono essere
creati solo all’interno del medesimo
file system dove è presente il
file originale. I link simbolici garantiscono
maggiore flessibilità al file
system, ma hanno qualche limite.
Ad esempio, se si cancella il file o
la directory a cui fanno rifermento,
i symlink non sono più utilizzabili
perché manca la loro destinazione
e in gergo si dice che diventano
orfani. Un collegamento fisico, invece,
non può restare mai orfano e
questo perché punta direttamente
ai dati (il contenuto) del file, ed è indipendente
dal file di destinazione
specificato al momento della sua
creazione. In sintesi, la creazione
di un collegamento è simile alla
copia, ma al contrario di questa, invece
di creare un duplicato del file
o della directory, si crea “solo” un riferimento
a quelli originali. La shell
prevede uno specifico comando
per gestire i collegamenti, nella
fattispecie si tratta di ln. Questo è
in grado di gestire entrambi i tipi di
collegamento, ma per creare quelli
simbolici è necessario utilizzare
l’opzione -s, mentre per quelli fisici
non è necessaria alcuna opzione.
La sintassi è molto semplice: ln
[opzioni] origine destinazione.
In pratica, non bisogna fare altro
che specifi care il file o la directory
di origine e scrivere la destinazione;
quest’ultima non sarà altro che
il collegamento vero e proprio. Individuare
un collegamento all’interno
del file system è semplicissimo. In
modalità grafica sono rappresentati
da un’icona (di un fi le o di una
cartella a seconda del caso) che
contiene una freccia. Dalla shell,
invece, eseguendo ls -l, tutti i link
appaiono preceduti dalla lettera
“l”, inoltre, alla fine della stessa
riga è presente il nome del collegamento
e il file a cui fa riferimento.
 |
Crea il link simbolico provalink.txt che punta al fi le prova.txt |
 |
Ecco come la shell (comando ls -l) visualizza i collegamenti |
 |
Esempio di collegamento simbolico diventato orfano (manca il fi le originale) |