lpic/101/027_link_hard_soft.md
2025-02-18 20:48:19 +01:00

1.6 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.

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.