Vom Terminalfenster:
Wenn ich den rm
Befehl verwende, kann er nur Dateien entfernen.
Wenn ich den rmdir
Befehl verwende, werden nur leere Ordner entfernt.
Wenn ich ein Verzeichnis habe, das mit Dateien und Ordnern in Ordnern mit Dateien usw. verschachtelt ist, gibt es eine Möglichkeit, alle Dateien und Ordner ohne die mühsame Eingabe von Befehlen zu löschen?
Wenn es einen Unterschied macht, verwende ich die Mac-Bash-Shell vom Terminal aus, nicht Microsoft DOS oder Linux.
Antworten:
-r "rekursiv" -f "erzwingen" (Bestätigungsnachrichten unterdrücken)
Achtung!
quelle
brew install trash
Danntrash -rf some_dir
wird das unerwünschte Verzeichnis in Ihren Papierkorb verschoben, anstatt nur den Prestige- Stil im Äther zu verschwinden . ( Quelle )Würde alles (Ordner & Dateien) im aktuellen Verzeichnis entfernen.
Aber sei vorsichtig! Führen Sie diesen Befehl nur aus, wenn Sie absolut sicher sind, dass Sie sich im richtigen Verzeichnis befinden.
quelle
ls -R *
zuerst zu laufen, um zu sehen, was vonrm -rf *
Ja da ist. Die
-r
Option weistrm
an, rekursiv zu sein und die gesamte Dateihierarchie zu entfernen, die auf ihren Argumenten basiert. Mit anderen Worten, wenn ein Verzeichnis angegeben wird, entfernt es den gesamten Inhalt und führt dann das aus, was effektiv ein Verzeichnis istrmdir
.Die anderen beiden Optionen, die Sie kennen sollten, sind
-i
und-f
.-i
steht für i nteractive; Sie werdenrm
aufgefordert, bevor Sie jede einzelne Datei löschen.-f
steht für f orce; es geht voran und löscht alles ohne zu fragen.-i
ist sicherer, aber-f
schneller; Verwenden Sie es nur, wenn Sie absolut sicher sind, dass Sie das Richtige löschen. Sie können diese mit-r
oder nicht angeben ; Es ist eine unabhängige Einstellung.Und wie immer können Sie Schalter kombinieren:
rm -r -i
ist gerechtrm -ri
undrm -r -f
istrm -rf
.Beachten Sie auch, dass das, was Sie lernen, für
bash
jedes Unix-Betriebssystem gilt: OS X, Linux, FreeBSD usw. Tatsächlich istrm
die Syntax in nahezu jeder Shell unter jedem Unix-Betriebssystem gleich. OS X unter der Haube ist wirklich ein BSD-Unix-System.quelle
"rm -d"
, das entweder Dateien oder leere Verzeichnisse entfernt. Dennoch +1 für den Punkt, dass OS X intern BSD ist.Also suchte ich überall nach einer Möglichkeit, alle Dateien in einem Verzeichnis zu entfernen, mit Ausnahme einiger Verzeichnisse und Dateien, die ich behalten wollte. Nach langem Suchen habe ich einen Weg gefunden, dies mit find zu tun.
Im Wesentlichen wird Regex verwendet, um die Verzeichnisse auszuwählen, die von den Ergebnissen ausgeschlossen werden sollen, und dann die verbleibenden Dateien entfernt. Ich wollte es nur hier rausbringen, falls jemand anderes es brauchte.
quelle