Cos'è#
La logica per cui l'eliminazione di un file in Linux non è la distruzione dei dati, ma la rimozione di un riferimento (link) all'Inode.
Come funziona#
- Quando esegui
rm, il kernel chiama la funzioneunlink(). - Il nome del file viene rimosso dalla cartella.
- Il Link Count nell'Inode viene decrementato di 1.
- SE il contatore arriva a 0 e nessun processo sta leggendo il file:
- I blocchi di dati vengono segnati come "liberi" (disponibili per nuovi dati).
- L'Inode viene liberato.
Warning
Se un processo (es. un server log) tiene aperto un file mentre lo cancelli con rm, il Link Count scende a 0 ma lo spazio sul disco NON si libera finché il processo non viene chiuso.
Note
I blocchi marcati come "liberi" non vengono azzerati — i dati restano sul disco fisicamente fino alla prossima scrittura su quegli stessi blocchi. Questo rende possibile il recupero forense con tool come foremost. Solo shred sovrascrive i blocchi prima di liberarli.
Collegato a#
- rm — comando
- inode-anatomy — dove risiede il contatore


