È possibile ripristinare file / directory eliminati con rm?


69

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


per gli strumenti per recuperare file cancellati (in qualsiasi forma), puoi dare un'occhiata a questa domanda askubuntu.com/q/3883
Decio Lira,

Non utilizzare "rm" se si desidera ripristinare i file in futuro. È possibile utilizzare l'utilità "rm-trash": github.com/nateshmbhat/rm-trash
Natesh bhat,

Risposte:


63

A tal fine uso il mio trash-clipacchetto e il seguente alias nel mio~/.bashrc

alias rm=trash

E il trash-clipacchetto può essere installato con il comando followoing: sudo apt-get install trash-cli.

I file rimossi verranno spostati nel cestino e potrai vederli nel cestino nautilus.

Puoi sempre accedere al reale rmutilizzando uno dei seguenti metodi:

command rm something
'rm' something
\rm something

Ci sono anche comandi per accedere al cestino dal terminale trash-list, restore-trash(o trash-restore), trash-emptyinstallabile dal pacchetto trash-cli (poi vedere la loro pagine).

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


19
È una soluzione, ma in realtà non risponde alla domanda.
evgeny,

Penso che l'utente dovrebbe anche sapere se esiste un metodo per ottenere lo stesso comportamento dalla riga di comando. In caso contrario, sono pronto a rimuovere la mia risposta.
enzotib,

3
Va bene. Ho acquisito alcune conoscenze.
user3215

27

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

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

In caso contrario (se hai installato Ubuntu con le impostazioni predefinite ), prova il extundeleteprogramma.

Non vi è alcuna garanzia che recupererai qualcosa comunque.


Sarebbe davvero utile per le edizioni desktop.
user3215

Dubito che questo funzioni in modo efficace per le unità SSD, ma felice di sentire altrimenti
matt

13

Stai cercando: extundelete - utility per recuperare file cancellati dalla partizione ext3 / ext4

Per trovare un tale pacchetto, puoi provare: apt-cache search undelete

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

Dopo l'installazione, richiamare man extundeletee studiarlo attentamente.


6

In alternativa, se sai esattamente che tipo di file è ...

sudo apt-get install foremost

Ora apri /etc/foremost.confe 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 tipo di file non esiste, aggiungi la tua riga. Supponiamo di voler recuperare un file .css e so che è circa 40 KB. Potrei aggiungere questo:

css     n       40000   Theme\sName:     Plugin\sFixes

La seconda colonna si riferisce alla distinzione tra maiuscole e minuscole, la terza colonna si riferisce al limite superiore per le dimensioni, la quarta colonna indica come inizia il file (ricordarsi di utilizzare i caratteri di escape) e l'ultima colonna indica come di solito termina il file.

Utilizzare il seguente comando (modificare il disco di conseguenza. Potrebbe verificare con il dfcomando)

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

Quello che succederà dopo è che prima di tutto creerà una cartella chiamata output e scaricherà tutti i dati recuperati (in questo caso) nella cartella. Da lì è possibile utilizzare diffo meldconfrontare i "file" recuperati e vedere quale è il più aggiornato.


molte grazie. Ha funzionato perfettamente. Ho rimosso accidentalmente il mio phpfile sorgente usando rm -fr php/con 2 phpfile. Meno di 2 minuti sono stati recuperati perfettamente. Nel .conffile ho aggiunto:php n 40000 <?php ?> ASCII
Shakiba Moshiri

5

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 homedirectory ~/.local/share/Trash/,. I file "cancellati" da questa directory, saranno veramente cancellati. Questa vera eliminazione è ciò che accade quando si utilizza rmun 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 rmun 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.


2

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

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


Oh va bene!. Ho pensato che potesse essere recuperato da qualche posizione.
user3215

1

utilizzare l'utilità " rm-trash " che gestisce li mette nel cestino per il successivo recupero e supporta tutte le opzioni del comando "rm".

sudo add-apt-repository ppa:nateshmbhat/rm-trash
sudo apt-get update
sudo apt-get install rm-trash

"rm-trash" è

  • destinato ad essere utilizzato al posto di rm
  • gestisce tutte le opzioni che può prendere rm
  • gestisce le collisioni di 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 utilizzato automaticamente
  • mostra i messaggi di errore appropriati come quelli che si presentano in rm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.