lpic/101/027_link_hard_soft.md
2025-02-20 20:38:33 +01:00

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.

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.

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.