![查找目录下特定文件类型占用了多少文件空间?](https://linux22.com/image/1304786/%E6%9F%A5%E6%89%BE%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B%E5%8D%A0%E7%94%A8%E4%BA%86%E5%A4%9A%E5%B0%91%E6%96%87%E4%BB%B6%E7%A9%BA%E9%97%B4%EF%BC%9F.png)
我有一个 samba 共享,里面有我的音乐,我想知道 mp3 文件(不包括与我的音乐混合的任何内容,如图片或视频,或任何其他文件类型,如 flac 或 aac 或 ogg)占用了多少磁盘空间。我尝试过 baobab、gdmap 和 ncdu,但并不想安装所有 KDE 来尝试 filelight(它看起来也做不到这一点)。
我可以得到一个要移动的所有内容的大列表(find ~/moremusic -name "*.mp3"
),但据我所知,这并不是很有帮助。如果我做类似的事情,du -a ~/moremusic | grep ".mp3"
我会得到一个完整的大列表,每行都以文件大小(以 KB 为单位)开头。只需将其加起来,我就可以开始了,但我不知道最好的方法是什么。
答案1
和bash 4.x
shopt -s globstar; du **/*.mp3 | awk '{sum+=$1}END{print sum}'
和find
find . -type f -name "*.mp3" -exec du {} + | awk '{sum+=$1}END{print sum}'
答案2
给出以字节为单位的总大小:
echo $(($(find ~/moremusic -name "*.mp3" -printf %s+)0))
使用 find 创建一个以“+”结尾的独立字节大小的字符串。该字符串以“0”结尾,以防止 shell 抱怨空运算符,并被提供给内置的 shell 计算器函数。