1.7 KiB
Link
Esiste un tipo speciale di file, chiamato link. Ne esistono di due tipi:
- link simbolici: chiamati anche soft link, puntano al percorso di un altro file. Se si elimina il file a cui punta il collegamento (target), questo smetterá di funzionare
- hard link: sono una voce aggiuntiva nel filesystem che punta alla stessa posizione (inode) sul disco (punta allo stesso dato). Se si elimina uno di questi nomi, gli altri continueranno a funzionare.
Un inode é una struttura che memorizza gli attributi (o metadati) per un oggetto, come file o directory, su un filesystem. Tra questi attributi ci sono i permessi, le varie proprietá, ecc.
Hard Link
ln TARGET LINK_NAME
Il target, ossia il file a cui punterá il collegamento, deve giá esistere.
ln file hardlink
ls -li
total 4
880514 -rw-rw-r-- 2 dado dado 0 Feb 18 20:39 file
880514 -rw-rw-r-- 2 dado dado 0 Feb 18 20:39 hardlink
Per verificare il numero di inode, si utilizza il comando ls -i
. Il numero prima dei permessi é il numero di inode. I file file
e hardlink
hanno lo stesso numero di inode, poiché sono uno l'hardlink dell'altro.
In quanto un hardlink punta allo stesso inode, puo' essere spostato senza timore di rompere il collegamento.
Il numero 2
indica il numero di hard link che puntano al file (si parte da 1). I soft link non aumentano questo contatore.
Soft Link
ln -s TARGET LINK_NAME
Ecco un esempio:
ls -lh
total 8.0K
lrwxrwxrwx 1 dado dado 4 Feb 18 20:44 softlink -> file
Il primo carattere sui permessi é l
, che indica un soft link. I permessi per i softlink sono sempre rwxrwxrwx
, ma in realtá i permessi sono gli stessi della destinazione.