Мне нужно выполнить поиск du, который захватывает только определенные подпапки. Например, вот структура каталогов:

du -b

0   ./678  
21  ./679/536/Content_Repository_PoC_-_Main  
73  ./Content_Repository_PoC_-_C-CDN_JIT_Packaging/679/536  
255034  ./PoC_-_C-CDN_JIT_Packaging/680/13/processed_3348d8a9-a  
201034  ./PoC_-_C-CDN_JIT_Packaging/683/13/processed_cec582f5-1  
208034  ./PoCx/225/processed_cec27825-1

Мне нужно, чтобы он возвращал итоговую сумму ТОЛЬКО подпапок со словом "обработано" в имени подпапки (поэтому в этом примере только три нижних). Я могу ожидать огромное количество положительных результатов.

Другими словами, вместо du --exclude='processed*' я бы хотел что-то вроде

du --exclude!='processed*'

1 ответ1

0

С находкой:

find -type d -name 'processed*' exec du {} \;

Если вы хотите общий размер:

find -type d -name 'processed*' exec du -c {} +

(«+» обрабатывает все соответствующие файлы одной командой)

Если все ваши обработанные * находятся на одном уровне каталогов, вы также можете избежать поиска с некоторыми оболочками (bash, zsh):

du -c */*/processed*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .