Назад | Перейти на главную страницу

Solaris 11 находит пустые папки (-пустые не работают)

Как найти пустой каталог и удалить его в 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