我如何知道我的硬盘驱动器中特定类型的文件占用的总大小?

VaT*_*aTo 4 find disk-usage images

我想知道是否有一个命令可以告诉我 .jpg 文件有多少存储空间(例如)。就像如果我这样做find / -iname "*.jpg"可以添加找到的每个文件的大小并输出总数。

Rah*_*hul 5

find ./path/to/your/drive -type f -name '*.jpg' -exec du -ch {} +
Run Code Online (Sandbox Code Playgroud)

或者更快

find /path/to/your/drive -name "*.jpg" -print0 | du -ch --files0-from=-
Run Code Online (Sandbox Code Playgroud)

或者简单地说,

du -ch /path/to/your/drive/*.jpg | grep total
Run Code Online (Sandbox Code Playgroud)

或者在的帮助下awk

find /path/to/your/drive -iname "*.jpg" -ls | awk '{total += $7} END {print total}'
Run Code Online (Sandbox Code Playgroud)

在我的系统文件大小显示在第七个字段上,如果它对您来说不同,则相应地进行调整。

根据 OP 在评论中的要求,如果您想从目录和总大小中查找所有图像,您可以使用此命令(@Stéphane Chazelas 建议)

 find . -type f -exec file --mime-type {} + | sed -n 's|: image/[^[:blank:]]*$||p' | tr '\n' '\0' | du --files0-from=- -hc
Run Code Online (Sandbox Code Playgroud)

或者

 du -shc $(find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image' | cut -d':' -f1) | grep total
Run Code Online (Sandbox Code Playgroud)

  • @Saul,`找到。-type f -exec 文件 --mime-type {} + | sed -n 's|: image/[^[:blank:]]*$||p' | tr '\n' '\0' | du --files0-from=- -hc` (2认同)