Hard Links
Luca Giuzzi
giuzzi a dmf.bs.unicatt.it
Lun 31 Gen 2000 15:21:16 UTC
> ma le stesse . e .. non sono degli hardlink alle directory "se stessa" e
> "padre" ???
Questo e' esatto, e, infatti, il filesystem non ha alcuni problemi con la
creazione di hard links a directories. Il problema risiede in
1. nella chiamata di sistema usata per creare i links (mkdir e'
una operazione atomica dal punto di vista user space)
2. nelle possibili incompatibilita' con tools e programmi.
Il punto 1 e' facilmente aggirabile, semplicemente modificando il comportamento
di link() [o di ext2_link() se hai paura che altri filesystems ti diano
luogo a spiacevoli sorprese]...
Il punto 2 e' quello veramente `serio' ed e' il motivo per cui ho deprecato
il tutto [e probabilmente anche il motivo per cui gli hard links a directories
non sono solitamente supportati]:
considera questo scenario:
/---a---b---c---a
e osserva che cosa combina tar (o cpio) quando cerchi di creare un archivio:
cose non troppo carine (va in recursione). Pure find e' destinato ad avere
problemi del genere e questo non mi piace molto.
So bene che con "." e ".." il tutto funziona (e funziona bene), ma il
punto :) e' che quelli sono considerati `a priori' casi particolari
da ignorare...
Similmente gli effetti di un remove possono essere `non auto-evidenti',
nel senso che ``non e' possibile rimuovere una dir sintanto che contiene
files'. Cancellare una dir `hard linked' richiede la rimozione di tutti
i files contenuti nella dir originale... [ovviamente esiste sempre un
`piano B': limitarsi a fare un unlink() sull'entry... questo pero'
comporta il rischio di lasciare spazio marcato come allocato sul disco
ma non reclamato da nessun file] e questo potrebbe essere contrario a
quanto desiderato e/o desiderabile.
La possibilita' c'e' ed e' piu' che legittimo usarla... considerarla una
funzionalita' `da rendere semplice, facile ed immediata', forse non e'
il caso... [opinione personale]
Ciao,
luca
Maggiori informazioni sulla lista
Lug
|