diff --git a/lpic/101/027-link.md b/lpic/101/027-link.md new file mode 100644 index 0000000..6a31f18 --- /dev/null +++ b/lpic/101/027-link.md @@ -0,0 +1,50 @@ +# 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 all’interno 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 all’interno del filesystem. Tra le informazioni contenute vi sono i permessi, la proprietà, le dimensioni e i timestamp, ecc. + +## Hard Link + +La sintassi per creare un hard link è la seguente: + +```bash +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. + +```bash +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. + +## Soft Link + +La sintassi per creare un link simbolico è la seguente: + +```bash +ln -s TARGET LINK_NAME +``` + +Ecco un esempio: + +```bash +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. diff --git a/lpic/101/027_link_hard_soft.md b/lpic/101/027_link_hard_soft.md deleted file mode 100644 index 6301f42..0000000 --- a/lpic/101/027_link_hard_soft.md +++ /dev/null @@ -1,47 +0,0 @@ -# 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 - -```bash -ln TARGET LINK_NAME -``` - -Il target, ossia il file a cui punterá il collegamento, deve giá esistere. - -```bash -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 - -```bash -ln -s TARGET LINK_NAME -``` - -Ecco un esempio: - -```bash -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.