Linux

如何計算具有特定副檔名的大量文件的總大小?

  • December 3, 2012

我在 Linux 中有一個目錄,其中包含大量文件(數万個),以及可能包含數千個文件的目錄。

在某些時候,以下 du 命令失敗並出現“參數列表太長”錯誤:

du -ch data/*.txt

如果我通過 find 命令進行管道傳輸,我不會得到“總數”,

find data/ -iname '*.txt' | xargs du -ch

做這樣的事情:

find data -iname '*.txt'  |xargs stat -c '%s' |awk '{total=total+$1}END{mbtotal = total / 1000000 ; print mbtotal}'

基本上,使用 獲取您的文件列表find,使用獲取每個命中的文件大小stat(格式化輸出以便您只顯示大小),然後使用總計awk(在我的範例中,除以 1,000,000 以獲得類似兆字節的內容;更改分母由您自行決定)。

您也可以在 Perl 或您想使用的任何語言中進行類似的練習。

引用自:https://serverfault.com/questions/454615