Найдите каталоги без файлов в Unix/Linux

У меня есть список каталогов

/home
  /dir1
  /dir2
  ...
  /dir100

У некоторых из них нет файлов в нем. Как я могу использовать Unix find сделать это?

Я попробовал

find . -name "*" -type d -size 0 

Кажется, не работает.

7
задан neversaint 26 May 2010 в 01:38
поделиться

3 ответа

Есть ли у вашей находки предикат -empty ?

У вас должна быть возможность использовать find. -type d -empty

15
ответ дан 6 December 2019 в 09:58
поделиться

Если вы являетесь пользователем zsh, вы всегда можете это сделать. Если нет, возможно, это убедит вас:

echo **/*(/^F)

**/* распространится на каждый дочерний узел нынешнего рабочего каталога, а () является квалификатором glob. / ограничивает совпадения каталогами, а F ограничивает совпадения непустыми. Отрицание его с помощью ^ дает нам все пустые каталоги. Для получения более подробной информации см. страницу zshexpn.

2
ответ дан 6 December 2019 в 09:58
поделиться

-empty сообщает о пустых каталогах. Если вы хотите найти пустые деревья, посмотрите: http://code.google.com/p/fslint/source/browse/trunk/fslint/finded

Обратите внимание, что сценарий нельзя использовать без других сценариев поддержки, но вы можете установить fslint и использовать его напрямую?

1
ответ дан 6 December 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: