我可以做一个包容性的 du,而不是排他性的吗?

我可以做一个包容性的 du,而不是排他性的吗?

我需要执行 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*

相关内容