Files
learning/lpic/101/027-link.md
2025-08-28 21:42:33 +02:00

2.0 KiB
Raw Blame History

Link

Nei sistemi operativi Unix e Unix-Like, esiste una tipologia speciale di file denominata link. I link consentono di creare riferimenti a file o directory già esistenti, ma si distinguono in due categorie:

  • link simbolici (o soft link): puntano al percorso di un altro file o directory. Se il file o la directory di destinazione viene eliminato, il link simbolico smette di funzionare, poiché il riferimento diventa non valido
  • hard link: rappresentano una voce aggiuntiva allinterno del filesystem che punta alla stessa posizione (inode) fisica sul disco del file originale. Se unhard link viene eliminato, gli altri continueranno a funzionare

Un inode è una struttura che memorizza i metadati di un file o directory allinterno del filesystem. Tra le informazioni contenute vi sono i permessi, la proprietà, le dimensioni e i timestamp, ecc.

La sintassi per creare un hard link è la seguente:

ln TARGET LINK_NAME

Il target, ovvero il file a cui punterà il collegamento, deve già esistere.

Per verificare il numero di inode associato ai file, si utilizza il comando ls -i. Il numero che precede i permessi (880514) rappresenta l'identificativo dell'inode.

ls -li
total 4
880514 -rw-rw-r-- 2 user user    0 Feb 18 20:39 file
880514 -rw-rw-r-- 2 user user    0 Feb 18 20:39 hardlink

Nel caso riportato, file e hardlink condividono lo stesso inode, confermando che si tratta di hard link dello stesso file.

Il numero 2 indica il conteggio degli hard link che puntano al file, partendo da 1. È importante notare che i link simbolici non incrementano questo contatore.

La sintassi per creare un link simbolico è la seguente:

ln -s TARGET LINK_NAME

Ecco un esempio:

ls -lh
total 8.0K

lrwxrwxrwx 1 user user    4 Feb 18 20:44 softlink -> file

Il primo carattere dei permessi è l, che indica che si tratta di un link simbolico. I permessi per i link simbolici sono sempre impostati su rwxrwxrwx, ma in realtà i permessi effettivi sono quelli del file di destinazione.