Antworten:
Es gibt kein allgemeines "Rückgängigmachen" für jede Operation im Terminal. Wenn Sie eine Datei nach der Verwendung wiederherstellen möchten, rm
müssen Sie sich mit der Wiederherstellungssoftware befassen.
Eine Option, um zukünftige Fehler zu vermeiden, besteht darin, alias
alternative Befehle zum Entfernen von Dateien zu erstellen. Fügen Sie sie zu Ihren hinzu ~/.bashrc
und gewöhnen Sie sich an, sie stattdessen zu verwenden rm
.
alias rmi = 'rm -i'
Wenn Sie verwenden rmi
, werden Sie zur Bestätigung zukünftiger Löschvorgänge aufgefordert. Vermeiden Sie es, y
unmittelbar nach dem Ausgeben eines rmi
Befehls die Angewohnheit des Drückens zu entwickeln , da dies den Zweck zunichte macht.
Sie können auch Dateien, die mit dem trsh
Befehl im Terminal gelöscht wurden, in den Papierkorb verschieben (unter KDE und Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Wenn Sie verwenden trsh
, haben Sie eine eingeschränkte Funktion zum Wiederherstellen. Passen Sie das auf
trsh dir1/file1 dir2/file1
kann immer noch einen nicht behebbaren Datenverlust verursachen.
rm
zu rm -i
ist , dass Sie an dem Sicherheitsnetz gewöhnen, dass es Sie gibt. Dann gehen Sie auf eine andere Maschine, die diesen Alias nicht hat ...
rmi
-> rm -i
. Es ist wirklich ein Fehler, einem bestehenden Programm einfach durch Aliasing im Wege zu stehen.
Es gibt keinen Papierkorb für die Befehlszeile.
Sie können einige der verschiedenen nicht gelöschten Hilfsprogramme ausprobieren, es gibt jedoch keine Garantie dafür, dass sie funktionieren.
Sie könnten trash-cli verwenden, wenn Sie KDE verwenden, wenn Sie eine GUI ausführen. Dies ist ein Befehlszeilenprogramm zum Löschen / Wiederherstellen mithilfe der KDE-Papierkorbfunktionen.
alias rm=trash
damit Ihre typischen Kommandozeilen-Fehler mit Rückgängig-Schaltflächen versehen sind.
alias rm=trash
ist potenziell gefährlich, wenn es eine Chance gibt, dass Sie eines Tages das System eines anderen verwenden und vergessen (oder ssh). Viele sicherer nur daran gewöhnen, das Schreiben trash
statt rm
.
Sie können rm
einen Alias für den trash
Befehl erstellen (Sie müssen ihn trash
zuerst installieren .) Fügen Sie dies zu Ihrem hinzu ~/.bashrc
:
alias rm='trash'
Dies ist vorzuziehen, alias rm='mv --target-directory=$HOME/.Trash'
da ~ / .Trash NICHT der Mülleimer für Gnome ist. Es ist meiner Meinung nach besser, trash
herauszufinden, wo sich der eigentliche Papierkorb befindet.
Übrigens hätte ich das in einem Kommentar gepostet, aber ich habe nicht genug Repräsentanten.
Zwei weitere technische Lösungen wurden noch nicht genannt:
Es gibt hier eine größere Frage, die es wert ist, angesprochen zu werden. Shell-Befehle sind nicht gesprächig (sie überprüfen nicht doppelt, was Sie wollen), und sie erwarten, dass Sie wissen, was Sie tun. Dies ist von grundlegender Bedeutung für ihre Gestaltung . Es ist ein Feature, kein Bug.
Einige Leute fühlen sich macho, wenn sie solche Befehle verwenden, was ich ziemlich dumm finde, aber es ist wichtig, die Gefahren zu verstehen. Sie können in einem Terminal eine Menge Schaden anrichten, selbst wenn Sie nicht root sind. Ich denke, Sie haben sich wahrscheinlich wirklich nur darum gekümmert rm
, aber da Sie gesagt haben: "Können wir die im Terminal durchgeführten Vorgänge rückgängig machen?" Die allgemeine Antwort lautet: Nein, das können Sie nicht.
Option 1: Siehe Wiederherstellen von Linux-Dateien von einem ext2-Dateisystem . Diese Seite verweist auf ein Programm von Sebastian Hetze von LunetIX, das (wie der Titel schon sagt) kürzlich gelöschte Dateien aus einem ext2-Dateisystem wiederherstellt. Anwendungsbeispiel:
# undelete -d /dev/hdc3 -a 10
Warnungen:
Option 2: Auf meinem Computer wird rsnapshot (rsync) ausgeführt, wodurch stündlich Snapshots meiner ausgewählten Ordner erstellt werden. Dies geschieht schrittweise jede Stunde, 2 Stunden oder was auch immer Sie CRON anweisen. Nach einem vollen Tag werden diese Schnappschüsse in einen täglichen Schnappschuss umgewandelt und nach 7 Tagen in einer Woche so weiter und so fort. Dadurch kann ich für jede Stunde ungefähr einen Monat in die Vergangenheit reisen! Es ist ziemlich gut mit Speicherplatz, da es symbolische Verknüpfungen zu Dateien erstellt, die sich nie geändert haben ...
Wiederherstellung mit grep on /dev/partition
( Linux oder Unix Gelöschte Dateien wiederherstellen - Dateien wiederherstellen ),
grep -b 'search-text' /dev/partition > file.txt
Einfach mal ausprobieren.
Es gibt nicht gelöschte Dienstprogramme für ext2, aber die meisten anderen Linux-Dateisysteme sind in der Steinzeit hängengeblieben und haben keine erweiterten Usability-Funktionen. Ein trauriger Zustand, wenn man bedenkt, dass gigantische Laufwerke genug Speicherplatz haben, um eine Datei nie wieder zu löschen, ist an der Tagesordnung.
Sie haben also drei Möglichkeiten:
Machen Sie regelmäßig Backups, zum Beispiel mit einem Befehl wie:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Verwenden Sie ein Tool git
zur Versionskontrolle, z. B. für Ihre gesamte Arbeit. Während dies keinen Schutz gegen einen Verrückten rm -r
bietet, der das Repository tötet, schützt es vor regelmäßigen Problemen, da Sie git rm
nicht roh verwenden rm
.
Seien Sie besonders vorsichtig und nicht zu viel Vertrauen in rm -i
, trash-cli
und Freunde, da die meisten Daten werden Sie auf der Schale verlieren Sie nicht verlieren durch zufällige rm
, sondern durch falsch adressierte Rohre, vertippte Ausgabedateien, fehlgeleitet mv
und so, also Dinge , die überschreibt Ihre Daten, nicht nur löschen.
Führen Sie alle drei Schritte aus, um maximale Sicherheit zu gewährleisten.
check this ... könnte hilfreich sein http://artmees.github.io/rm/
Angenommen, Sie haben es getan
rm very_important_file
vom terminal. Das Wiederherstellen dieser Datei ist ein langwieriger und nicht immer erfolgreicher Vorgang
Stattdessen, wenn Sie das oben erwähnte Skript verwendet haben. Sie müssen sich darum keine Sorgen machen, weil
rm very_important_file
mv very_important_file ~/.Trash/
sind gleichwertig. Das Skript behandelt mehr Fälle und ändert Ihr System überhaupt nicht. Dies rm
liegt daran, dass es im lokalen Bin-Ordner des Benutzers abgelegt wird, so dass es das System-RM schattiert und es dennoch nicht beeinflusst oder deaktiviert
Dies ist ein verfeinerter Aliasing-Ansatz, bei dem jedoch keine Funktion verloren geht
Für mich (opensuse leap 42.2, NTFS pendrive) hat PhotoRec - auch von den testdisk
Erstellern - funktioniert :) Es wurden jedoch keine Dateinamen wiederhergestellt.
PhotoRec ist eine Software zur Datenwiederherstellung, mit der verlorene Dateien, einschließlich Videos, Dokumente und Archive, von Festplatten, CD-ROMs und verlorenen Bildern (daher der Name Photo Recovery) aus dem Speicher der Digitalkamera wiederhergestellt werden können. PhotoRec ignoriert das Dateisystem und sucht nach den zugrunde liegenden Daten, sodass es auch dann funktioniert, wenn das Dateisystem Ihres Mediums stark beschädigt oder neu formatiert wurde.
Ich habe es mit Standard-Repositorys in openSUSE installiert
rm
: Die Verknüpfung einer Datei wird aufgehobeninode
. Die Frage: "Wohin gehen Dateien, wenn derrm
Befehl ausgegeben wird" -> unix.stackexchange.com/questions/10883/… ist möglicherweise auch eine gute Lektüre für Sie.