Ich lief vor kurzem rm -rf
, nicht rm -rf /
, aber es ist nichts passiert. Ich erhalte gerade ein Ergebnis wie dieses:
Ich hatte Angst, weil ich mir Sorgen mache, dass es einige Dateien hätte löschen können, aber das tat es nicht. Seien Sie sich nur sicher, ob dadurch Dateien aus meinem Verzeichnis gelöscht wurden.
rm
), aber für viele / die meisten anderen Befehle, z. B. alle Pipe-basierten Textbearbeitungsbefehle, ist es am einfachsten / einfachsten, sie nur häufig auszuprobieren. Natürlich zusammen mit dem Studium der Manpage.Antworten:
Nein, es
rm -rf
werden keine Dateien gelöscht, da Sie dem Befehl kein Argument übergeben haben.quelle
-f
ist es kein Fehler, es ohne Argumente auszuführen.rm -r
beschwert sich über "fehlenden Operanden",-f
unterdrückt diesen aber und unterdrückt auch Fehler für Dateien, die nicht existieren. (So könnte beispielsweise ein Skriptrm -rf /foo/bar/*
zum Leeren eines möglicherweise bereits leeren Verzeichnisses verwendet werden, ohne2>/dev/null
Fehler quetschen zu müssen.)Von der Manualseite :
Dies bedeutet, dass Sie damit eine Liste von Dateien auf einmal entfernen können, z. B. mit
Zum Glück haben Sie nur eine leere Dateiliste übergeben und nichts gelöscht. Was @SolarMike außerdem sagt : Wenn Sie nicht wissen, was ein Befehl tut, führen Sie ihn nicht aus . macOS wurde entwickelt, um alle gefährlichen (aber potenziell leistungsfähigen) Unix-Vorgänge vor dem Endbenutzer zu verbergen.
quelle
-r
Ihrer Information: Das Flag ist nicht erforderlich, es sei denn, Sie löschen Verzeichnisse rekursiv. Wenn es sich nur um Dateien handelt,rm
ist dies ausreichend - das-f
ist für die Erzwingung, dass Sie nicht für jede Datei gefragt werden, ob Sie sicher sind.rm -rf
. Hätten sie 'rm -r' ohne angegebene Dateien / Verzeichnisse ausgeführt, hätten sie diese Verwendungsmeldung erhalten:JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file
/
, es zu löschen , es wird nur die nicht vorhandene Datei übersprungenxyz*
(die einfach nicht erweitert wird, weil es keine Übereinstimmung gibt).a
undb
für mich - auch ohne Angabe-f
. Führen Sieecho rm -f a b c*
stattdessen dieselben Befehle aus , um das tatsächliche Verhalten zu sehen.Für den Laien / Linux / Unix-Neuling:
rm
Allein macht man nichts, weil man nicht gesagt hat, was man loswerden soll.man rm
kann das meiste erklären, wenn du es verstehst.-r
bedeutet rekursiv, wie in "alles in Unterordner aufnehmen"-f
bedeutet erzwingen, "frag mich nicht zu bestätigen" -Modusrm -rf
(TUN SIE DAS NICHT)/
würde sagen, dass Sie alles unter/
(dem Stammordner) löschen müssen, ohne dies zu überprüfen (bei neueren MacOS-Versionen wird SIP Sie daran hindern, MacOS selbst zu entfernen, aber viele andere Dinge werden gelöscht).rm [some file name]
würde nur diese Datei löschen.rm -rf /home/myuser/books
würde alles inmyuser
'sbooks
Ordner sowie den Ordner löschen .quelle
rm -rf / --no-preserve-root
, um Ihr Bein richtig zu schießen.find / -delete
sollte "funktionieren" (dh tatsächlich löschen, also nicht ausführen.)Nein, aber wenn Sie löschen möchten Hier ist ein Beispiel:
Nachdem Sie Terminal gestartet haben (in Ihrem Ordner / Programme / Dienstprogramme), geben Sie cd ~ / Desktop ein, um zum Desktop-Verzeichnis zu navigieren. Wenn Sie hier eine Datei mit dem Namen MyFile.rtf haben, die Sie nie wieder sehen wollten, können Sie den folgenden Befehl ausführen:
Wenn Sie die Eingabetaste drücken, wird die Datei verworfen! Es wird weg sein, Toast, Geschichte. Du kannst es nicht zurückbekommen.
quelle