2011-05-05 18:30:54 +0000 2011-05-05 18:30:54 +0000
116
116

Annullare un comando "rm -rf ~"?

Avevo una cartella che non volevo si chiamasse ‘~’, così dalla linea di comando ho digitato

rm -rf ~

e ho accidentalmente cancellato la mia cartella home (dato che ~ si risolve in /home/username). C'è un modo per tornare indietro o devo praticamente ricreare l'account da zero?

Risposte (12)

148
148
148
2011-05-05 18:34:16 +0000

In generale non c'è un modo facile per tornare indietro.

Potresti ripristinare dal tuo backup giornaliero.

67
67
67
2011-05-06 02:20:40 +0000

Altri (come @RiMMER , @Adam , e @James T ) hanno menzionato che, per la maggior parte dei filesystem, è possibile recuperare la maggior parte o tutti i tuoi dati (forse senza i nomi dei file), perché i dati non sono effettivamente azzerati, ma solo rimossi dalla tabella dei file. Questo non vale solo per Linux - lo stesso vale per Windows e Mac.

Tuttavia, nessuno ha menzionato la cosa più importante - SPEGNETE IL VOSTRO COMPUTER. ORA..

Molti programmi - incluso il browser internet che stai usando in questo momento - memorizzano dati nella cache del disco rigido, e praticamente qualsiasi cosa tu faccia può far sì che il tuo computer ridimensioni/scriva nel file di swap. Entrambe queste cose scriveranno sui settori liberi del disco rigido, potenzialmente sovrascrivendo i vostri preziosi dati.

Quindi, spegnete il computer, togliete il disco rigido e mettetelo in un altro computer. Montate il disco rigido in sola lettura e recuperate i file su un disco rigido separato. Quando avete recuperato tutto ciò che vi interessa - e solo allora - scrivete i file sul disco originale.

13
13
13
2011-05-06 02:41:43 +0000

Credo che ogni utente linux ad un certo punto debba imparare questa dolorosa lezione in prima persona prima di imparare effettivamente l'importanza dei backup, così come prestare attenzione ai dettagli e fare attenzione.

Per esempio, se state cancellando dei file dall'aspetto strano, potreste prima eseguire dei comandi su quel file strano che non hanno effetti collaterali e che non apportano modifiche ai vostri dati. Per esempio, se aveste eseguito

cd ~

prima di provare a cancellare la cartella, avreste visto che avrebbe invece cambiato directory nella vostra cartella home, non nella cartella ~. Una volta che hai fatto abbastanza passi di troubleshooting per imparare il vero comando avresti dovuto correttamente cd nella cartella ~, poi avresti potuto premere il tasto freccia su per estrarre l'ultimo comando dalla cronologia e quindi cambiare cd in rm e allora e solo allora provare a cancellare la cartella.

Suggerisco di fare passi come questo prima di eseguire qualsiasi azione che sia permanente. Non è permanente o infallibile, ma si hanno molte più possibilità di prevenire quei momenti “oops” se si prende questo grado di cura quando si eseguono azioni che hanno effetti collaterali.

7
7
7
2011-05-05 19:00:15 +0000

Se state usando il filesystem ext3, allora ext3grep è il vostro nuovo migliore amico. Un buon tutorial (tra molti altri) sull'uso di ext3grep può essere trovato qui .

6
6
6
2011-05-05 18:49:12 +0000

Puoi provare a usare testdisk per annullare singoli file . Questo apparentemente funziona solo su ext2 e NTFS (ma vale comunque la pena provare).

Se hai ext3 o ext4, puoi recuperare file conosciuti usando photorec , che probabilmente finirà per recuperare più di quanto tu voglia. Photorec recupera i file senza le informazioni sul nome del file, quindi può essere noioso esaminare i file.

4
4
4
2011-05-06 14:31:40 +0000

Se avete un disco esterno abbastanza grande avete un'altra opzione forse più sicura. Avrete bisogno di abbastanza spazio per memorizzare l'intera partizione home incluso lo spazio libero.

Avviare da un CD e non montare affatto il disco fisso. Montate il disco esterno. fate un dd della partizione del disco di casa in un file sul disco esterno. montate il file come un dispositivo di loopback e fate il vostro lavoro di undelete su questa immagine, sicuri di non poter fare alcun danno al vostro filesystem originale. A seconda del filesystem ci possono essere molte cose da provare, alcune delle quali potenzialmente distruttive.

Questo mi ha salvato una volta con una versione beta di Reiser4 quando non sapevo cosa avrebbe fatto anche se l'avevo montato in sola lettura. Avevo letto da qualche parte all'epoca che le scritture sul journal erano ancora possibili.

È anche una buona tecnica per salvare i dati da un disco morente.

2
2
2
2011-05-05 18:46:33 +0000

Ci sono tecniche per recuperare i file ispezionando gli inode che non sono stati riciclati. Più dati si scrivono sul file system dopo la cancellazione, meno probabilità ci sono di recuperare i dati. La migliore strategia di recupero da una cancellazione accidentale di dati è il ripristino da un backup.

2
2
2
2011-05-07 18:27:57 +0000

Mi dispiace per i tuoi dati. Tutti gli altri si sono espressi su come affrontare il tuo problema di dati, ma ecco alcune informazioni su come puoi affrontare la prossima volta che vedi una cartella chiamata ~.

  1. Trova chi l'ha creata e assicurati che non lo faccia più.
  2. Non usate -rf o altri argomenti folli e potenti per rm per fare la cancellazione. Invece prendila con calma e assicurati di poter vedere cosa sta succedendo. È possibile inserire la tilde senza che si espanda alla vostra home directory facendola uscire nella shell. In teoria si potrebbe rm -rI \~, tuttavia si può fare un passo avanti.
  3. Prima, cd \~ per entrare in quella cartella, magari usa anche pwd per controllare che ci sei arrivato. Dieci rimuovi il suo contenuto mentre sei lì dentro. Ancora una volta fai attenzione ma pulisci la cartella con rf -rI * e se hai bisogno prendi anche .*.
  4. Ora risalite con cd .. e rimuovete la cartella con rmdir \~.
2
2
2
2011-05-06 05:30:57 +0000
alias rm="rm -i"

Supponendo che stiate usando la shell Bash (mettetelo nel vostro file .bashrc in modo che persista nelle nuove shell che aprite).

Questo dovrebbe risultare in rm che ti chiede di confermare cosa vuoi cancellare, il che è carino specialmente quando stai facendo -rf, ma espanderà anche ‘~’ al percorso completo della tua home directory nel prompt, il che dovrebbe darti un indizio che non stai cancellando un file ‘~’ ma effettivamente la tua homedir.

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

Questa non è tecnicamente una risposta alla tua domanda, ma potrebbe aiutarti ad evitare tale problema in futuro.

EDIT: Alcune persone potrebbero scoraggiarti dall'usare questa tecnica perché ti rende meno attento al comando “rm”. Nella mia esperienza questo è lontano dalla verità. In realtà, l'effetto dell'alias è quello di scoraggiare l'uso di “rm -rf” - in quanto si sa che risulterà in molti prompt a cui non si vuole rispondere - e al fine di ottenere un “rm -rf” senza prompt è necessario fare deliberatamente riferimento al comando rm come /bin/rm (o altro). Questo porta ad un uso molto più cosciente e deliberato del comando “rm” in generale - poiché è sempre necessario precedere l'uso di rm con una scelta mentale di “rm o /bin/rm” - sia sul vostro server che su qualsiasi altro in cui vi capita di essere collegati. E un mondo in cui tutti pensassero prima di usare rm sarebbe davvero più sicuro!

1
1
1
2011-05-06 07:04:37 +0000

Faccio solo il cd .snapshot e ripristino i file. Ma lo faccio al lavoro e non ho idea da dove venga la directory .snapshot. Pensavo che forse fosse una caratteristica di Linux.

1
1
1
2018-06-10 04:22:55 +0000

Strumenti di recupero - Linea di comando :

*Strumenti di recupero - Gui : *

*Info : *

Nella mia esperienza personale ho recuperato i miei dati usando “UFS Explorer” e photorec

(1) = Non open source, non libero

(2) = Non open source, libero

(3) = Open source e libero

(4) = Hanno il supporto ntfs

(5) = Hanno la funzione struttura delle directory

-3
-3
-3
2011-05-06 00:07:52 +0000

rm è per sempre.

Anche se questo non ti aiuta ora, potresti in futuro non usare rm o per forzarti davvero, aggiungere uno script trovato prima nel tuo percorso chiamato rm che sposta i file in una cartella cestino che ripulisci un'altra volta (permettendoti di fare errori e non essere SOL).