簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM