Ich kann Folgendes verwenden, um das Zielverzeichnis und rekursiv alle seine Unterverzeichnisse und Inhalte zu entfernen.
find '/target/directory/' -type d -name '*' -print0 | xargs -0 rm -rf
Ich möchte jedoch nicht, dass das Zielverzeichnis entfernt wird. Wie kann ich nur die Dateien im Ziel, die Unterverzeichnisse und deren Inhalt entfernen?
linux
macos
command-line
terminal
Michael Prescott
quelle
quelle
Drei weitere Optionen.
Verwenden Sie
find
mit-mindepth 1
und-delete
:2. Verwenden Sie
find
, aber mit Dateien, keine Verzeichnisse. Dies vermeidet die Notwendigkeitrm -rf
:3. Entfernen Sie das übergeordnete Verzeichnis, erstellen Sie es jedoch erneut. Sie können eine Bash-Funktion erstellen, um dies mit einem Befehl zu tun. Hier ist ein einfacher Einzeiler:
quelle
Wie wäre es mit
Wenn es Dateien gibt, die mit beginnen. im Zielverzeichnis.
Diese Sekunde passt zu allem, was mit einem. Beginnt, außer. und .. Es wird bei Namen wie .a scheitern, aber das ist nicht sehr verbreitet. Es könnte bei Bedarf angepasst werden, um alle Fälle abzudecken.
quelle
quelle