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 Datei unlink
überschreibt, bevor sie bearbeitet wird, sodass sie nicht wiederhergestellt werden kann. Ich verwende den unlink
Begriff, da dies der zugrunde liegende Systemaufruf ist, der dem rm
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 wie du
) 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 wie lsof
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), dann rm
tun Sie genau das, was Sie verlangen. Möglicherweise rm='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 verwenden rm
, wird dies bei Bedarf außer Kraft gesetzt. Ein Alias rm
ist am nützlichsten, wenn Sie glob
like entfernen rm *.log
. Das heißt, Sie haben die Möglichkeit, eine Datei in der Liste zu überspringen.