Linux rm rückgängig machen? [Duplikat]

31

Mögliches Duplikat:
UNDO LINUX Trash Command

Hallo,

Gibt es eine einfache Möglichkeit, einen rmBefehl rückgängig zu machen ?

Die Frage ist rein theoretisch; Ich habe NIE das Protokoll einer Benchmark-Warteschlange gelöscht, für deren Ausführung eine ganze Mittagspause benötigt wurde.

Adam Matan
quelle
1
... oder zumindest sehr eng verwandt, auch wenn die Frage selbst etwas allgemeiner formuliert ist
Jonik

Antworten:

33

Auf Ubuntu oder ähnlichem:

$ sudo apt-get install trash-cli
$ alias rm=trash

Fügen Sie diesen Alias ​​in .bashrc oder das entsprechende Anmeldeskript für die Shell Ihrer Wahl ein.

Das trash-cliPaket ist eine Befehlszeilenschnittstelle für denselben Papierkorb, den GNOME, KDE und andere verwenden. Alles, was Sie über den trashBefehl löschen, kann von GNOME / KDE wiederhergestellt werden und umgekehrt.

Die anderen Befehle in dem trash-cliPaket sind trash-list, trash-emptyund restore-trash.

Ryan C. Thompson
quelle
11
+1 für Trash-Cli, -1 für Aliasing rm.
1
Was ist los mit Aliasing rm? Ich mag es, eine Schaltfläche zum Rückgängigmachen für meine versehentlichen Löschvorgänge zu haben, sogar in der Befehlszeile. trash-cliErleichtert dies auch explizit, indem viele GNU- rmOptionen akzeptiert (und ignoriert) werden . Außerdem bat das OP um einen Weg, dies rückgängig zu machen. Diese Lösung beantwortet die Frage ohne den Alias ​​nicht richtig.
Ryan C. Thompson
15
@Ryan: Weil du dich daran gewöhnt hast, etwas anderes zu bedeuten als das, was der Befehl rm wirklich tut, und dann machst du einen Fehler, wenn er keinen Alias ​​hat. Gewöhnen Sie sich stattdessen an den Papierkorbbefehl, und das kann nicht passieren.
5
@ Roger: Oder ... du kannst einen Alias ​​erstellen rmund dich dann hypnotisieren, um zu vergessen, dass du es getan hast. Auf diese Weise können Sie immer noch verwenden, rmals ob es endgültig ist ... aber wenn Sie ausrutschen und gehen "oh nein!" Du bist nicht komplett durchgeknallt. (dh verlassen Sie sich nicht auf die "wiederherstellbare" Funktionalität)
mpen
@ RyanThompson: Dies ist ein netter Tipp, aber wie kann man das so konfigurieren, dass es auch mit funktioniert sudo rm?
Takeshin
15

Die traditionelle Antwort lautet:

Sie stellen die Datei von der letzten Sicherung wieder her. Sie haben ein aktuelles Backup, nicht wahr?

Auf vielen Unix-Dateisystemen ist dies nicht möglich oder sehr schwierig.

Wie andere angemerkt haben, ist dies nicht mehr das A und O, aber solche Fehler nicht zu machen, ist immer noch der bevorzugte Ansatz.

dmckee
quelle
5
Ich beabsichtige wirklich, alle meine Skripte in einem stündlich festgeschriebenen bzr-Repository abzulegen.
Adam Matan
3
Die moderne Antwort lautet: Stellen Sie die Datei von einem aktuellen Dateisystem-Snapshot wieder her. :-)
Knweiss
Das ist eine coole Frage ... Ich rm -fr *(1)*erstelle normalerweise keine Backups von ~ / Downloads ... und lösche meinen Inhalt, indem ich ... jede Datei weggebe. Backups sind also nicht immer die Lösung. Trash-Cli klingt cool.
m3nda
Nein, Backups sind IMMER die Lösung. Nur weil Sie sich dafür entschieden haben, etwas nicht zu sichern, ist das Sichern nicht die Lösung. Es macht Sie dumm, etwas nicht zu sichern.
djsmiley2k - CoW
4

Um hypopthetische Fehler in der Zukunft zu vermeiden, können Sie einen Aliasnamen für rm -i ...

Rich Bradshaw
quelle
6
Ich denke im Allgemeinen, dass dies niemals Fehler verhindern würde (das 'y' wird ganz automatisch eingegeben), aber viel Zeit verbrauchen und die Verwendung von He-Whose-Name-Must-Not-Be-Mentioned rm -rf fördern würde.
Adam Matan
Es gibt Ihnen eine zusätzliche Chance, bevor Sie die Dinge durcheinander bringen. Ich habe im Allgemeinen nur lsdie gleichen Parameter vor, damit ich sehen kann, was gehen wird.
Rich Bradshaw
Normalerweise lösche ich Dateien absichtlich. Mir ist nur klar, dass ich diese Dateien später brauchte. So interaktiv würde nicht helfen
Andrewtweber