![](/img/trans.png)
[英]How to list the files and folders in a directory with its total size in Linux?
[英]How to calculate the total size of certain files only, recursive, in linux
我有一堆文件分散在布局中的文件夾中,例如:
dir1/somefile.gif
dir1/another.mp4
dir2/video/filename.mp4
dir2/some.file
dir2/blahblah.mp4
我需要找到只用於MP4文件的總磁盤空間。 這意味着它必須以某種方式遞歸。
我看過du
並擺弄管道到grep
東西,但似乎無法弄清楚如何只計算 MP4 文件,無論它們在哪里。
如果可能的話,人類可讀的總磁盤空間輸出也是必須的,最好以 GB 為單位?
有任何想法嗎? 謝謝
對於單個文件大小:
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 }'
你可以簡單地做:
find -name "*.mp4" -exec du -b {} \; | awk 'BEGIN{total=0}{total=total+$1}END{print total}'
find 命令的 -exec 選項執行一個簡單的命令,其中 {} 作為 find 找到的文件。 du -b 以字節為單位顯示文件的大小。 awk 命令將變量初始化為 0 並獲取每個文件的大小以在命令末尾顯示總數。
這將以字節為單位總結所有 mp4 文件的大小:
find ./ -name "*.mp4" -printf "%s\n" | paste -sd+ | bc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.