I sistemi Unix fanno largo uso di link: dei file speciali che sono semplici collegamenti o alias di file esistenti.
Servono per identificare lo stesso file o directory con nomi diversi, avendo anche path diversi.
Su Unix esistono due tipi di link: Hard link e Symbolic link.
L'effetto che hanno è lo stesso, ma la loro natura è diversa e si adattano a diversi utilizzi.
L'utilità dei link è varia:
- Se si devono modificare diversi file uguali, in diverse directory, con l'uso di link la modifica fatta su un file diventa immediatamente effettiva anche sugli altri file (link) (Es: la struttura di /etc/rc.* ) .
- Se si devono poter gestire contemporaneamente diversi ambienti o programmi con diverse versioni, si può cambiare solo il puntamento del link usato per accedere a questi ambienti per poter switchare rapidamente da uno all'altro (es: /usr/src/linux )
- Se si devono gestire diverse alternative dello stesso comando, si può usare un link per referenziare il comando con un nome fisso e poi cambiare il puntamento per valutare in tempi brevi le diverse alternative (ex: Directory /etc/alternatives in RedHat Linux).
Hard Link
Sono di fatto una copia di una voce di directory, hanno nomi diversi ma puntano allo stesso inode e quindi condividono esattamente lo stesso dato (oltre agli stessi permessi, data di modifica, owner ecc.).
Dal momento che originale e link sono indistinguibili e condividono lo stesso inode, non si possono fare hard link fra file system diversi e, in genere su Unix, su directory (su Linux è possibile creare un hard link ad una directory tramite l'opzione speciale -d).
Pur essendo la gestione dei link comunque molto rapida da parte del kernel, gli hard link sono leggermente più "economici" in quanto risparmiano più spazio su disco (stesso i-node, stessi dati) e richiedono una lettura in meno sul file system (i symlink hanno i-node diverso e puntatore, che va letto, ad un altro file).
Symbolic Link o Symlink
Sono dei piccoli file che contengono un puntamento ad altri file o directory. Questi file hanno i-node autonomo e possono puntare a file di altri file system (sia locali, che di rete). Si possono facilmente visualizzare con un normale ls -l e se viene cancellato o spostato il file a cui puntano rimangono "stale": continuano ad esistere ma puntano a qualcosa che non esiste.
I symlink sono generalmente molto più utilizzati nell'amministrazione di sistemi Unix e corrispondono come concetto e come implementazione ai collegamenti (shortcut) del mondo Windows.
Un symlink appare come avente tutti i permessi aperti a tutti gli utenti, di fatto è trasparente rispetto a permessi e ownership e riflette quelli del file o directory a cui punta.
Capire, muoversi e modificare file e directory: /, .., . , cd, ls, cp, mv, rm, rmdir, mkdir. Uso di link e symlink.
Introduzione al File System LinuxLe informazioni fondamentali per comprendere e gestire il file system e la logica delle directory su Linux
Permessi
come si possono dare ad un hard link solo i permessi che il file da al gruppo del proprietario
Rispondicome conteggiare gli hard link
come posso conteggiare gli hard link?
RispondiNo Posix No Hardlink
Non puoi.
Il file system di Windows non predeve il concetto di hard link (diverse voci di directory fra loro indistinguibili che puntano allo stesso file/dato).
I collegamenti di Windows, invece, sono paragonabili ai symlink.
hard link. come?
Come posso fare un hard link in window