Как найти пустой каталог и удалить его в Solaris 11.
Я пробую это:
find . -type d -empty
Вывод:
find: bad option -empty
find: [-H | -L] path-list predicate-list
Другой пример. Это должно работать быстрее.
Он основан на выводе команды 'ls -ed', которая заменяет поле размера (пятое) для каталогов информацией о его содержимом. Пустые каталоги всегда будут иметь цифру «2» в этом поле.
Также xargs используется для уменьшения количества команд для выполнения.
find . -type d | xargs -i ls -ed {} | awk '{if ($5=="2"){ print $0 }}'
В -empty
Аргумент является нестандартным расширением POSIX-стандартизованный find
утилита.
Solaris 11 должен иметь GNU find
установлен как gfind
где-то.
По умолчанию в Solaris нет -empty, если у вас /usr/xpg4/bin/find
он должен поддерживать это
Другой способ - написать сценарий так:
find . -type d|while read name; do if (( $(ls -al $name|wc -l) == 3 )); then echo $name; fi; done