<Precedenti | Contenuti | Succ.>
Creazione di collegamenti simbolici
I collegamenti simbolici sono stati creati per superare i due svantaggi degli hard link: gli hard link non possono estendersi su dispositivi fisici e gli hard link non possono fare riferimento a directory, solo a file. I collegamenti simbolici sono un tipo speciale di file che contiene un puntatore di testo al file o alla directory di destinazione.
La creazione di collegamenti simbolici è simile alla creazione di collegamenti reali:
[io@linuxbox playground]$ ln -s fun divertente-simbolo [io@linuxbox playground]$ ln -s ../fun dir1/fun-sym [io@linuxbox playground]$ ln -s ../fun dir2/fun-sym
[io@linuxbox playground]$ ln -s fun divertente-simbolo [io@linuxbox playground]$ ln -s ../fun dir1/fun-sym [io@linuxbox playground]$ ln -s ../fun dir2/fun-sym
Il primo esempio è piuttosto semplice, aggiungiamo semplicemente l'opzione "-s" per creare un collegamento simbolico anziché un collegamento reale. Ma per quanto riguarda i prossimi due? Ricorda, quando creiamo un collegamento simbolico, stiamo creando una descrizione testuale di dove il file di destinazione è relativo al collegamento simbolico. È più facile vedere se osserviamo il ls produzione:
[io@linuxbox playground]$ ls -l dir1
[io@linuxbox playground]$ ls -l dir1
Totale 4 | ||
-rw-r--r-- 4 io | me | 1650 2016-01-10 16:33 divertente-difficile |
lrwxrwxrwx 1 io | me | 6 2016-01-15 15:17 fun-sym -> ../divertimento |
L'elenco per divertimento-sim in dir1 mostra che è un collegamento simbolico dalla "l" iniziale nel primo campo e che punta a "../fun", che è corretto. Rispetto alla posizione di divertimento-sim, ti divertirai è nella directory sopra di esso. Notare anche che la lunghezza del file di collegamento simbolico è 6, il numero di caratteri nella stringa "../fun" piuttosto che la lunghezza del file a cui punta.
Quando si creano collegamenti simbolici, è possibile utilizzare nomi di percorso assoluti:
[io@linuxbox playground]$ ln -s /home/me/parco giochi/fun dir1/fun-sym
[io@linuxbox playground]$ ln -s /home/me/parco giochi/fun dir1/fun-sym
o nomi di percorso relativi, come abbiamo fatto nel nostro esempio precedente. Nella maggior parte dei casi, l'utilizzo di nomi di percorso relativi è più desiderabile perché consente di rinominare e/o spostare un albero di directory contenente collegamenti simbolici e i relativi file di riferimento senza interrompere i collegamenti.
Oltre ai file normali, i collegamenti simbolici possono anche fare riferimento a directory:
[io@linuxbox playground]$ ln -s dir1 dir1-sim
[io@linuxbox playground]$ ls -l
Totale 16
drwxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | dir1 |
lrwxrwxrwx | 1 | me | me | 4 | 2016-01-16 | 14:45 | dir1-sym -> dir1 |
drwxrwxr-x | 2 | me | me | 4096 | 2016-01-15 | 15:17 | dir2 |
-rw-r--r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | ti divertirai |
-rw-r--r-- | 4 | me | me | 1650 | 2016-01-10 | 16:33 | divertente |
lrwxrwxrwx | 1 | me | me | 3 | 2016-01-15 | 15:15 | fun-sym -> fun |