Alle leeren Verzeichnisse mit der Linux-Kommandozeile finden und entfernen
English
Deutsch
Um alle leeren Unterverzeichnisse im aktuellen Verzeichnis (.) rekursiv zu finden und zu entfernen, verwenden Sie diesen Befehl:
remove-empty-dirs.sh
find . -depth -type d -print0 | xargs -0 rmdirDieser Befehl entfernt nur leere Verzeichnisse! Dateien oder nicht-leere Verzeichnisse werden nicht verändert.
Erklärung der einzelnen Bestandteile:
find: Verwenden Sie den find-Befehl, um Verzeichnisse rekursiv zu finden.: Beginnen Sie die Rekursion im aktuellen Verzeichnis. Falls Sie in einem anderen Verzeichnis beginnen möchten, verwenden Sie hier den Namen dieses Verzeichnisses.-type d: Nur Verzeichnisse finden - Dateien ignorieren-depth: Vor der Ausgabe eines Verzeichnisnamens werden alle Unterverzeichnisnamen ausgegeben. Dies vermeidet es, diesen Befehl mehrfach auszuführen, da das übergeordnete Verzeichnis nicht entfernt werden kann, solange seine leeren Unterverzeichnisse zuerst entfernt werden müssen-print0Bei der Ausgabe aller gefundenen Verzeichnisse wird ein NUL-Zeichen zwischen den Verzeichnissen ausgegeben. Dies ist erforderlich, um Leerzeichen in Verzeichnisnamen korrekt zu behandeln| xargs: Die Verzeichnisse anxargsweiterleiten, ein Programm das ausführt-0: Die Eingabe nach NUL-Zeichen statt nach Zeilenumbrüchen aufteilen. Dies entspricht der-print0-Option vonfindund ist erforderlich, um Leerzeichen in Verzeichnisnamen korrekt zu behandeln.rmdir: Für jedes gefundene Verzeichnisrmdirausführen, d.h. versuchen, das Verzeichnis zu entfernen, wenn es leer ist.
Check out similar posts by category:
Linux
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow