"du"のすべての数字を足してください。

我々が得た最初の数を計算したいと思います。du

du -b /tmp/*
6       /tmp/216c6f99-6671-4865-b8bc-7205f5388752_resources
668669  /tmp/hadoop7887078727316788325.tmp
6       /tmp/hadoop-hdfs
42456   /tmp/hive
32786   /tmp/hsperfdata_hdfs
6       /tmp/hsperfdata_hive
32786   /tmp/hsperfdata_root
262244  /tmp/hsperfdata_yarn

したがって、最終合計は次のようになります。

sum=6+668669+6+42456+32786+6+32786+262244


echo $sum

awkまたはPerl onelinerでこれを行うにはどうすればよいですか?

ベストアンサー1

AWKでは:

{ sum += $1 }
END { print sum }

だから

du -b /tmp/* | awk '{ sum += $1 } END { print sum }'

ディレクトリ自体にサブディレクトリがある場合、ディレクトリとそのサブディレクトリの累計が生成されるため、/tmp結果が正しくありません。du

du -s/tmp(隠しファイルを含むすべてのサブディレクトリとファイルについて)合計を正しく計算します。

du -sb /tmp

du -cリストされたディレクトリとファイルの合計も正しく計算されます。

du -cb /tmp/*

おすすめ記事