Ich habe einige Ordner, die irrtümlicherweise erstellt wurden. Ich möchte diese Ordner entfernen.
¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty
In dieser Situation möchte ich 636.empty
den verbleibenden, nicht leeren Ordner entfernen und belassen.
Nachdem ich den Terminalbefehl ausgeführt habe, möchte ich, dass alle Ordner, die sich in einem sister
Ordner befinden, entfernt werden.
¬ 636
¬ 637
¬ 638.empty
¬ 639
Entfernte Ordner wären:
¬ 636.empty
¬ 639.empty
Ich habe einige 25,000
Ordner, 1000
von denen es sich möglicherweise um Duplikate mit dem empty
Ordner handelt
Antwort1
Durchlaufen Sie alle genannten Verzeichnisse *empty
und prüfen Sie, ob das gleiche Verzeichnis ohne dasselbe .empty
vorhanden ist. Löschen Sie es, wenn dies zutrifft:
for d in *.empty; do
[ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done
Ersetzen rmdir
durch rm -rf
, wenn das Verzeichnis trotz seines Namens nicht leer ist ;-)
Eine find
Alternative:
find -maxdepth 1 -type d -name '*.empty' \
-exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
-delete
Ersetzen Sie -delete
es durch -exec rm -rf {} \;
, wenn das Verzeichnis nicht leer ist.