Conoscere e usare i Collegamenti: Symbolic link e Hard link
Posted by hackgeek | Posted in Guide, Linux | Posted on 19-11-2008
Tag:collegamenti, hard link, ln, symbolic link, symlink
0
Oggi voglio parlarvi di uno strumento che ci permette di rendere il file system e la gestione di file e directory molto più flessibile,sto parlando dei Collegamenti.
Molti di voi li conosceranno e li usano quotidianamente, ma credo che sia utile avere una panoramica più specifica sull’ argomento.
I collegamenti possono essere di due tipi: simbolici e fisici.
Quelli simbolici, detti anche symbolic link o symlink, sono in pratica dei file che fanno riferimento ad altri file o un’altra directory presente sul disco. Questo tipo di collegamenti possono essere creati verso file e directory presenti nello stesso file system, inoltre possono puntare anche ad altri link simbolici. I collegamenti fisici detti anche hard link, al contrario, si riferiscono al contenuto del file (ai dati e non al nome) per questo motivo possono essere creati solo all’interno dello stesso file system, in cui è presente il file originale. Facendo un paragone ci rendiamo conto che i link simbolici sono molto più flessibili, ma hanno di contro delle limitazioni. Per esempio, se cancelliamo il file a cui si riferiscono, i symlink,non sono più utilizzabili e vengono chiamati orfani.
Un collegamento fisico invece non rimarrà mai orfano,in quanto punta direttamente al file (il contenuto). In pratica,la creazione di un collegamento è paragonabile alla copia, ma invece di creare un duplicato del file/directory, si crea solo un riferimento.
Come consuetudine utilizzeremo la shell per i nostri esempi.
Il comando per la gestione dei collegamenti è ln, con questo comando possiamo gestire tutti e due i tipi di collegamenti, ma se vogliamo creare quelli simbolici utilizzeremo l’opzione -s mentre per quelli fisici non useremo nessuna opzione.
La sintassi è la seguente:
ln [opzioni] origine destinazione
quindi ci basterà specificare il file (o directory) di origine e scrivere la destinazione. Se vogliamo individuare un collegamento, sempre da shell, basterà eseguire ls -l, e in output vedremo tutti i link preceduti dalla lettera “l” e alla fine della riga possiamo vedere il nome del collegamento e il file a cui fa riferimento. Chiaramente per avere un quadro ancora più completo sulle opzioni di questo comando rimando alla classica pagina di manuale: man ln
Spero che vi sia di aiuto, nei casi in cui non avete la possibilità di usare la modalità grafica….




































