Найти каталоги, содержащие только файлы нулевого размера - PullRequest
0 голосов
/ 28 августа 2018

У меня около 2000 каталогов, таких как:

(0123)ABC45
(0124)DEF97
.....
(1253-1)XYZ_ZXY
....

Существуют каталоги, содержащие файлы нулевого размера в результате неудачного извлечения из архива. Мне нужно найти все эти каталоги (или просто цифры в скобках). Моя команда сделать это:

find . -type f -size 0 |cut -d')' -f 1 |cut -d'(' -f 2 |sort -u

Но эта команда находит каталоги, содержащие как минимум один файл нулевого размера, и мне нужны каталоги, где каждый файл имеет размер 0 байт. Как это сделать?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вероятно, не самый эффективный (один вызов find на подкаталог, плюс еще один, чтобы найти все подкаталоги), но это должно работать:

while IFS= read -r -d $'\0' dir; do
    if [[ -z "$(find "$dir" -maxdepth 1 -type f -size +0c)" ]]; then
        printf '%s\n' "$dir"
    fi
done < <(find . -mindepth 1 -type d -print0)
0 голосов
/ 28 августа 2018
du -t -4K [Path]

Показывает (под) папки с общим размером <= 4 КБ (то есть пустые или заполненные файлами 0-го размера). </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...