Wie eine andere Antwort zeigt, können Sie versuchen, alle Verzeichnisse mit dem Namen zu finden test
und zu löschen
find -name "test" -type d -delete
Ich habe auf dem Mac einige Probleme mit der Cross-Kompatibilität festgestellt, daher habe ich diesen entsprechenden Befehl verwendet:
find -path "*/test" -type d -delete
- -path : Sucht nach einem Muster im vollqualifizierten Dateinamen.
Wenn sich jedoch in einem der genannten Verzeichnisse test
Dateien befinden, find
wird dies beklagt Directory is not empty
, und das Verzeichnis kann nicht entfernt werden.
Wenn Sie beabsichtigen, alle Dateien einschließlich des test
Verzeichnisses zu löschen , können Sie mit demselben Trick alle Dateien in den test
zuerst genannten Verzeichnissen löschen .
find -path "*/test/*" -delete
Das Muster: "*/test/*"
stellt sicher, dass nur Dateien in einem Verzeichnis mit dem Namen gelöscht werden /test/
. Sobald die Verzeichnisse leer sind, können wir die Verzeichnisse mit dem ersten Befehl löschen:
find -path "*/test" -type d -delete
Beispiel:
$ tree
.
├── mytest
│ └── test
│ └── blah.txt
├── test
│ ├── bar.jpg
│ └── dir
│ └── bar.bak
└── testdir
└── baz.c
5 directories, 4 files
$ find -path "*/test" -type d -delete
$ tree
.
├── mytest
│ └── test
├── test
└── testdir
└── baz.c
4 directories, 1 file
$ find -name "test" -type d -delete
$ tree
.
├── mytest
└── testdir
└── baz.c
2 directories, 1 file
+
in der Entdeckung. Ich hatte keine Ahnung, wünschte auf jeden Fall, ich hätte das schon vor langer Zeit gewusst.