Datum: 2004-07-08
Quelle: debian-user-german
Wie kann man leere Verzeichnisse finden und diese dann löschen? Ich habe verschiedene Varianten aus meinen damaligen Lösngen modernisiert.
# find + exec find /path/to/dir -mindepth 1 -maxdepth 1 -type d -empty -exec rmdir {} \; # find + xargs find /path/to/dir -mindepth 1 -maxdepth 1 -type d -empty -print | xargs rmdir # find + print0 + xargs find /path/to/dir -mindepth 1 -maxdepth 1 -type d -empty -print0 | xargs -0 rmdir # ls ls -A /path/to/dir | while read f; do test -d "$f" || continue test -z "`ls -A \"$f\"`" && rmdir "$f" done
Alle Varianten suchen die direkten Unterverzeichnisse in einem Basisverzeichnis. Die Art und Weise, die benutzt werden, um leere Verzeichnisse zu finden, unterscheidet sich: Im find kann man direkt testen, ob das Verzeichnis leer ist (Option -empty), mit ls muss man erstmal prüfen, ob es sich um ein Verzeichnis handelt und dann per weiterem ls nachgucken, ob es weitere Einträge enthält.