我需要执行 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
我需要它仅返回子文件夹名称中带有单词“processed”的子文件夹的总和(因此在此示例中,仅返回底部三个)。我可以期待大量的积极结果。
换句话说,du --exclude='processed*'
我想要的是类似
du --exclude!='processed*'
答案1
使用 find:
find -type d -name 'processed*' exec du {} \;
如果您想要总大小:
find -type d -name 'processed*' exec du -c {} +
(‘+’ 使用一个命令处理所有匹配的文件)
如果所有“processed*”都在同一目录级别,那么您也可以避免使用某些 shell(bash、zsh)进行查找:
du -c */*/processed*