Ich habe versehentlich eine Datei gelöscht, indem ich Folgendes ausgeführt habe:
rm -rf ./Desktop/myScript.sh
Ich denke, es ist möglich, die Datei wiederherzustellen, da der rm
Befehl vorübergehend entfernt. Wie kann ich die gelöschte Datei unter Mac OS X wiederherstellen?
shell
shell-script
data-recovery
cat_minhv0
quelle
quelle
Antworten:
MacOS ist ein Unix-Betriebssystem und
rm
bedeutet "Auf Wiedersehen". Über die GUI-Oberfläche können Sie eine Datei in den Papierkorb verschieben (den Sie dann wiederherstellen können), aber das haben Sie nicht getan. Wenn Sie ein Backup haben (z. B. wenn Time Machine ausgeführt wird), werden Sie gespeichert.Klärung
Streng genommen (als @ire_and_curses Punkte out) ein
rm
löscht einfach den Verzeichniseintrag für die Datei während verlassen die Plattenblöcke daran gewöhnt, unberührt. Wenn Sie das Dateisystem stilllegen können, in dem sich die Datei befunden hat, gibt es erweiterte Methoden, mit denen Sie versuchen können, den Inhalt dieser Blöcke erneut zu ermitteln. Es gibt auch einige Wiederherstellungs-Tools, mit denen Sie den Verlust beheben können. Das zentrale Problem ist, dass nichts anderes die von Ihrer Datei dargestellten Plattenblöcke wiederverwendet.Das MacOS verfügt auch über einen sicheren Befehl zum Entfernen (
srm
), der eine Dateiunlink
überschreibt, bevor sie bearbeitet wird, sodass sie nicht wiederhergestellt werden kann. Ich verwende denunlink
Begriff, da dies der zugrunde liegende Systemaufruf ist, der demrm
Befehl einer Shell zugeordnet ist . Dies ist der Grundstein für den nächsten Teil dieser Diskussion.Randnotiz
[Ich sollte mich beeilen, das hinzuzufügen, auch wenn Sie eine Disk mehrfach überschreiben, gibt es Möglichkeiten, das zu lesen, was ein Dutzend oder mehrmals zuvor geschrieben wurde. Um eine Scheibe für die Entsorgung richtig zu desinfizieren, sind ein Säurebad, ein großer Hammer und ein Schredder erforderlich. ]
unlink
Wenn Sie eine Datei dekrementieren, wird die Anzahl der Inode-Links der Datei verringert. Wenn dieser Wert Null erreicht, wird die Datei aus dem Dateisystemverzeichnis gelöscht und ihre Plattenblöcke zur Wiederverwendung freigegeben. Dies geschieht nur, wenn die Datei bei keinem Prozess geöffnet ist. Für Administratoren ist es oft verwirrend festzustellen, dass ein Dateisystem sehr viel Speicherplatz belegt, der nicht durch die einfache Summierung von Plattenblöcken (mit so etwas wiedu
) erklärt werden kann. Meistens liegt der Grund darin, dass eine geöffnete Datei entfernt wurde, sodass sie nicht mehr in ihrem Verzeichnis dargestellt wird. Der Grund dafür ist, dass die Plattenblöcke so lange in Verwendung bleiben, bis der letzte Prozess, der die Datei verwendet, beendet wird.Das Öffnen und sofortige
unlink
Speichern einer Datei ist eine gängige Vorgehensweise zum Erstellen sicherer, temporärer Dateien. Tools wielsof
können diese ansonsten unsichtbaren Dateien verfügbar machen, wenn Sie nach Dateien mit einer Linkanzahl (NLINK) von Null suchen.Unter Unix und Linux (von denen das MacOS ein Marken-Unix ist)
rm
folgt a der Unix-Philosophie von "do-it" ohne Fanfare, wenn dies möglich ist. Das heißt, wenn Sie die Berechtigung haben, eine Datei zu entfernen (dh Ihr Verzeichnis erlaubt das Schreiben), dannrm
tun Sie genau das, was Sie verlangen. Möglicherweiserm='rm -i'
möchten Sie einen Shell-Alias erstellen , der Sie zur Bestätigung auffordert, bevor Sie den Vorgang ausführen. Wenn Sie den-f
Schalter verwendenrm
, wird dies bei Bedarf außer Kraft gesetzt. Ein Aliasrm
ist am nützlichsten, wenn Sieglob
like entfernenrm *.log
. Das heißt, Sie haben die Möglichkeit, eine Datei in der Liste zu überspringen.quelle
Abhängig von Ihrem Inhalt können Sie jedoch andere Software von Drittanbietern verwenden, z. B .:
und viele mehr.
Weitere Apps finden Sie, wenn Sie im App Store "Datenwiederherstellung" eingeben.
Weitergehende Möglichkeiten bestehen darin, OSX im Wiederherstellungsmodus zu starten (oder die Partition zu entpacken, wenn Sie können) und manuell danach zu suchen (wenn Sie sich an einen bestimmten Text aus Ihrem Skript erinnern).
Einige Beispiele:
quelle