У меня есть несколько папок, которые были созданы по ошибке. Я хотел бы удалить эти папки.
¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty
В этой ситуации я бы хотел удалить 636.empty
и оставить оставшуюся папку пустой.
После того, как я выполнил команду терминала, я хотел бы sister
удалить все папки, входящие в папку.
¬ 636
¬ 637
¬ 638.empty
¬ 639
Удалённые папки будут следующими:
¬ 636.empty
¬ 639.empty
У меня есть несколько 25,000
папок, возможно, 1000
некоторые из них дублируют empty
папку
решение1
Пройтись по всем указанным каталогам *empty
и проверить, существует ли такой же каталог, .empty
и удалить, если это так:
for d in *.empty; do
[ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done
Заменить rmdir
на rm -rf
, если каталог не пуст, несмотря на свое название ;-)
Альтернатива find
:
find -maxdepth 1 -type d -name '*.empty' \
-exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
-delete
Замените -delete
на , -exec rm -rf {} \;
если каталог не пустой.