У меня есть список каталогов
/home
/dir1
/dir2
...
/dir100
У некоторых из них нет файлов в нем. Как я могу использовать Unix find
сделать это?
Я попробовал
find . -name "*" -type d -size 0
Кажется, не работает.
Есть ли у вашей находки предикат -empty
?
У вас должна быть возможность использовать find. -type d -empty
Если вы являетесь пользователем zsh, вы всегда можете это сделать. Если нет, возможно, это убедит вас:
echo **/*(/^F)
**/*
распространится на каждый дочерний узел нынешнего рабочего каталога, а ()
является квалификатором glob. /
ограничивает совпадения каталогами, а F
ограничивает совпадения непустыми. Отрицание его с помощью ^
дает нам все пустые каталоги. Для получения более подробной информации см. страницу zshexpn.
-empty
сообщает о пустых каталогах.
Если вы хотите найти пустые деревья, посмотрите:
http://code.google.com/p/fslint/source/browse/trunk/fslint/finded
Обратите внимание, что сценарий нельзя использовать без других сценариев поддержки, но вы можете установить fslint и использовать его напрямую?