Linux
如何計算具有特定副檔名的大量文件的總大小?
我在 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 或您想使用的任何語言中進行類似的練習。