Wie eine andere Antwort zeigt, können Sie versuchen, alle Verzeichnisse mit dem Namen zu finden testund 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 testDateien befinden, findwird dies beklagt Directory is not empty, und das Verzeichnis kann nicht entfernt werden.
Wenn Sie beabsichtigen, alle Dateien einschließlich des testVerzeichnisses zu löschen , können Sie mit demselben Trick alle Dateien in den testzuerst 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.