Wird rm -rf *.*
Ihr Dateisystem beschädigen, während rm -rf /
dies nicht tut dies?
Kommentare
- Unix und Linux Stack Exchange sind seit mehr als 6 Jahren hilfreich und SuperUser aus demselben Grund: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Antwort
Dort „s nichts Besonderes, rm -rf *.*
ist ein Befehl mit einem Platzhalter für Dateinamen. Er entfernt rekursiv alle Dateien im aktuellen Verzeichnis, deren Namen einen Punkt enthalten.
rm -rf /
würde einen Fehler beim Versuch verursachen, rm
im Stammverzeichnis auszuführen. Diese wird von POSIX beauftragt :
Wenn […] ein Operand reso ist In das Stammverzeichnis schreibt rm eine Diagnosemeldung in den Standardfehler und macht mit solchen Operanden nichts mehr.
Abhängig In der Shell und ihren Einstellungen stimmt *.*
möglicherweise auch mit ..
für das übergeordnete Verzeichnis überein, jedoch ebenso wie mit /
, der Versuch, das zu entfernen, ist ebenfalls ein Fehler.
Keiner von beiden wird das Dateisystem beschädigen, rm
wird nur (versuchen) zu entfernen Dateien mit den üblichen Dateisystemaufrufen. Die Auswirkungen auf das gesamte System oder die Dateien des Benutzers können natürlich erheblich sein, wenn der erste Befehl in einem Verzeichnis ausgeführt wird, das wichtige Dateien enthält.
Kommentare
- für ausreichend neue Versionen von GNU
rm
(ursprünglich von Solaris IIRC gestohlene Funktion). Am besten nicht weinen, wenn Ihr eingebettetes Leichtgewichtrm
ist nicht mit dem neuesten POSIX kompatibel.