Parlando nei termini più astratti, ogni volta che si elimina un file nell'interfaccia grafica, il file viene "spostato" in uno speciale "buffer", una directory chiamata trash
. Puoi trovarlo nella tua directory home
, ~/.local/share/Trash/
. I file "cancellati" da questa directory, saranno veramente cancellati. Questa vera eliminazione è ciò che accade quando usi rm
su un file.
È estremamente difficile recuperare i file cancellati. I file nel file system sono rappresentati come nodi su un albero B o simile. Quando un file viene cancellato usando rm
, l'albero viene aggiornato, il numero di collegamenti fisici viene ridotto, la voce corrispondente nell'elenco delle directory viene rimossa. In caso contrario, il tuo file ha un collegamento reale, il tuo file è assolutamente sicuro. Puoi fare un file / -samefile filename
. È possibile cercare il file se si ricorda anche il numero di inode (questo non è il caso).
Un altro caso è quando nessuna delle possibilità di cui sopra è vera. Ogni volta che rm
un file, la voce del file nella directory viene rimossa, riducendo di uno il numero di collegamenti fisici. E se il numero di collegamenti fisici scende a zero, il puntatore al file sull'inode viene eliminato o contrassegnato per essere eliminato. In entrambi i casi, il tuo file "ancora" risiede sul disco rigido. Il file viene effettivamente cancellato dal disco rigido solo alla successiva rimonta. Il recupero dei file in questo momento è estremamente difficile, comporta il passaggio attraverso la struttura del file system e gli inode che rappresentano le posizioni effettive dei blocchi del disco. C'è uno strumento popolare di cui ho sentito parlare, ma mai usato, chiamato extundelete
. Sebbene non ci sia alcuna garanzia, vale la pena provare.
Una volta che i tuoi file sono stati ripristinati correttamente, affrettati a fare backup regolari. È estremamente semplice su Ubuntu.