在 Linux 中按类型显示文件大小?

在 Linux 中按类型显示文件大小?

我正在尝试找出目录中具有特定扩展名的所有文件的总大小。

我通过 rsync 进行一些异地备份,但由于另一端的带宽和磁盘空间有限,我无法完成所有操作,因此我想知道,例如,MP3 文件占用了多少磁盘空间,以便我可以决定是否从当前 rsync 排除模式列表中删除 mp3 扩展名。

这并不像在其中的“我的音乐”目录中执行“du -sh”那么简单,因为其中还存在其他文件类型。

谢谢!

答案1

使用 du:

查找音乐/-type f-name“*.mp3”-exec du-shc{} + | tail -1 | awk'{print $1}'

输出示例:

980米

答案2

我刚刚尝试了以下

find Music/ -name '*.mp3' -exec ls -l {} \; | awk '{ SUM += $5} END { print SUM/1024/1024 }'

并以兆字节 (1024 x 1024) 为单位获得了正确答案

答案3

find Music/ -iname "*.mp3" -type f -exec stat -c "%s" {} \; | awk '{SUM+=$0} END {print SUM/1024/1024}'

也得到了正确答案,与 pavium 的解决方案完全相同,但可能更可靠一些。

答案4

好的,这是我见过的最好的方法,它的执行速度似乎比包含 awk 的方法快几个数量级:

find "My Music/" -type f -name "*.mp3" -print0 | du -hc --files0-from=- | tail -n 1

输出:

1.3G Total

相关内容