Parlando in termini più astratti, ogni volta che si elimina un file sull'interfaccia grafica, il file viene "spostato" in un "buffer" speciale, una directory chiamata trash
. Puoi trovarlo nella tua home
directory ~/.local/share/Trash/
,. I file "cancellati" da questa directory, saranno veramente cancellati. Questa vera eliminazione è ciò che accade quando si utilizza rm
un file.
È estremamente difficile recuperare i file eliminati. I file nel file system sono rappresentati come nodi su un albero B o simili. Quando un file viene eliminato utilizzando rm
, l'albero viene aggiornato, il numero di collegamenti fissi viene ridotto, la voce corrispondente nell'elenco delle directory viene rimossa. Se del tutto, il tuo file aveva un collegamento reale, il tuo file è assolutamente sicuro. Puoi fare un file / -samefile filename
. Puoi cercare il file se ricordi anche il suo numero di inode (questo non è quasi il caso).
Un altro caso è quando nessuna delle possibilità sopra è vera. Ogni volta che si tratta di rm
un file, la voce del file nella directory viene rimossa, riducendo il numero di hardlink di uno. E se il numero di hard link scende a zero, il puntatore al file sull'inode viene eliminato o è contrassegnato per essere eliminato. In entrambi i casi, il file "continua" risiede sul disco rigido. Il file viene effettivamente cancellato dal disco rigido solo al successivo rimontaggio. Il recupero dei file in questo momento è estremamente difficile, implica passare attraverso l'albero 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
. Anche se non c'è garanzia, vale la pena provare.
Una volta ripristinati i file correttamente o meno, affrettati a fare backup regolari. È estremamente semplice su Ubuntu.