我在一个布局中的文件夹中散布了一堆文件,例如:
dir1/somefile.gif
dir1/another.mp4
dir2/video/filename.mp4
dir2/some.file
dir2/blahblah.mp4
我需要找到仅用于的MP4文件的总磁盘空间。这意味着它必须以某种方式递归。
我看了du
并摆弄了grep
的东西,但似乎无法弄清楚如何计算MP4文件,无论它们在哪里。
人类可读的总磁盘空间输出也是必须的,如果可能的话,最好是GB?
有什么想法吗?感谢
答案 0 :(得分:8)
对于单个文件大小:
find . -name "*.mp4" -print0 | du -sh --files0-from=-
以GB为单位的总磁盘空间:
find . -name "*.mp4" -print0 | du -sb --files0-from=- | awk '{ total += $1} END { print total/1024/1024/1024 }'
答案 1 :(得分:3)
您可以这样做:
find -name "*.mp4" -exec du -b {} \; | awk 'BEGIN{total=0}{total=total+$1}END{print total}'
find命令的-exec选项执行一个简单命令,其中{}作为find找到的文件。 du -b以字节为单位显示文件的大小。 awk命令将变量初始化为0并获取每个文件的大小以显示命令末尾的总数。
答案 2 :(得分:2)
这将汇总所有mp4文件大小(以字节为单位):
find ./ -name "*.mp4" -printf "%s\n" | paste -sd+ | bc