
Wie kann ich run-*.achilles
unter Linux alle Verzeichnisse in allen meinen Unterverzeichnissen entfernen?
Ich habe es versucht find /path -name run-*.achilles -type f -delete
, aber es funktioniert nicht.
Antwort1
Hier gibt es mehrere Probleme:
- Sie sollten Anführungszeichen setzen
*
, um Shell-Globbing zu verhindern. -type f
sagtfind
, dass Sie Dateien möchten.find -delete
löscht keine nicht leeren Verzeichnisse.Siehe diese FrageAngepasste Lösung aus einer der dortigen Antworten:find /path -path '*/run-*.achilles/*' -delete find /path -type d -name 'run-*.achilles' -empty -delete
Es ist nicht perfekt, die erste Zeile wird passen .../run-a/b.achilles/...
. Denke ich. Dieser Befehl sollte besser passen:
find /path -type d -name 'run-*.achilles' -exec rm -rf {} +
Es verwendet rm -rf
, gehen Sie also vorsichtig damit um.