diff --git a/101/027_link_hard_soft.md b/101/027_link_hard_soft.md index e69de29..02db108 100644 --- a/101/027_link_hard_soft.md +++ b/101/027_link_hard_soft.md @@ -0,0 +1,45 @@ +# 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. + +## 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. \ No newline at end of file