I file / directory cancellati con rm possono essere ripristinati?

59

È possibile ripristinare file / directory che vengono cancellati dal terminale utilizzando rm e rm -r ?. Se un file viene cancellato dall'interfaccia grafica, può essere ripristinato dal cestino, ma come si ripristina un file se viene rimosso usando l'utilità rm?.

    
posta user3215 13.10.2010 - 08:37

7 risposte

58

A tal fine, utilizzo il pacchetto trash-cli e il seguente alias nel mio ~/.bashrc

alias rm=trash

I file che rimuovi verranno spostati nel cestino e potrai visualizzarli nel cestino nautilus.

Puoi sempre accedere al rm reale utilizzando uno dei seguenti metodi:

command rm something
'rm' something
\rm something

Ci sono anche i comandi per accedere al cestino dal terminale, trash-list , restore-trash (o trash-restore ), trash-empty installabile dal pacchetto trash-cli (quindi vedi le loro pagine man).

Ultima nota, non è consigliabile utilizzare tale alias per il superutente, perché può interferire con le operazioni di sistema.

    
risposta data enzotib 13.10.2010 - 09:08
24

L'eliminazione dal terminale lo elimina in modo permanente: il recupero è molto difficile e talvolta impossibile.

Se il tuo tipo di partizione è ext3 (controllalo usando System->Administration->Disk Utility ), quindi dai un'occhiata a ext3undel .

Se non lo è (se hai installato Ubuntu con le impostazioni default ), prova il programma extundelete .

Non c'è alcuna garanzia che recupererai qualcosa però.

    
risposta data evgeny 13.10.2010 - 08:47
13

Stai cercando: extundelete - utilità per recuperare i file cancellati dalla partizione ext3 / ext4

Per trovare un pacchetto di questo tipo, puoi provare: apt-cache search undelete

Per utilizzare l'utilità installalo con: sudo apt-get install extundelete

Dopo l'installazione, richiama man extundelete e studia attentamente.

    
risposta data H.-Dirk Schmitt 09.03.2013 - 21:36
6

Solo come alternativa, se sai in particolare quale tipo di file è ...

sudo apt-get install foremost

Ora apri /etc/foremost.conf e vedrai un lungo elenco di righe commentate. Se il tuo tipo di file esiste, decommenta la riga (potresti anche voler rimuovere le righe irrilevanti).

Se il tuo tipo di file non esiste, aggiungi la tua linea. Diciamo che voglio recuperare un file .css e ne conosco circa 40K. Potrei aggiungere questo:

css     n       40000   Theme\sName:     Plugin\sFixes

La seconda colonna fa riferimento alla distinzione tra maiuscole e minuscole, la terza colonna fa riferimento al limite superiore per la dimensione, la quarta colonna indica il modo in cui il file viene avviato (ricorda di usare caratteri di escape) e l'ultima colonna è come il file normalmente finisce. / p>

Utilizza il seguente comando (modifica il disco di conseguenza. potresti controllare con df comando)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Quello che succederà dopo è che innanzitutto creerà una cartella chiamata output e scaricherà tutti i dati recuperati (in questo caso) nella cartella. Da lì puoi utilizzare diff o meld per confrontare i "file" recuperati e vedere quale è il più aggiornato.

    
risposta data Reuben L. 21.02.2014 - 07:37
4

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.

    
risposta data John Strood 10.10.2016 - 13:04
2

Ci dispiace, ma i file cancellati da una riga di comando con "rm" e "rm -f" ignorano il "Cestino" che hai sul desktop Gnome.

Potresti anche chiedere se ci sono strumenti di "undelete" di extfs come ce ne sono per FAT e NTFS. (Non ne conosco, ma sarei sorpreso se non ce ne fosse nessuno.)

    
risposta data Stéphane 13.10.2010 - 08:44
0

Puoi provare questo script. Funziona bene e deve essere utilizzato al posto di rm

link

Caratteristiche:

  • pensato per essere usato al posto di rm
  • gestisce tutti gli argomenti che rm può richiedere
  • gestisce le collisioni dei nomi di file con i file già nel cestino
  • gestisce automaticamente alcuni problemi di autorizzazione
  • se rm viene chiamato da qualsiasi altro script o indirettamente, il comando di sistema 'rm' viene usato automaticamente
  • mostra i messaggi di errore appropriati come quelli che si presentano in rm
risposta data Natesh bhat 15.05.2018 - 03:40

Leggi altre domande sui tag