複数個あるファイルの総サイズを求める方法を調べたので共有します。
具体的には、次の 2 つのケースについて説明します。
- カレントディレクトリにあるファイルの総サイズ
- 複数のディレクトリにあるファイルの総サイズ
カレントディレクトリにあるファイルの総サイズ
この場合は簡単です。
# 詳細を表示する
ls -l
# 2進接頭辞表記に変換する。K,M,Gなどと書かれていますが KiB,MiB,GiBです。
ls -lh
このコマンドで総サイズがわかります。
複数のディレクトリにあるファイルの総サイズ
次は、複数のディレクトリをまたぐ場合です。
この場合は、find
でファイルリストを、du
でファイルサイズを得て、 awk
を使い合計を求めるのが良いでしょう。
対象ディレクトリの共通する親ディレクトリに移動し、次のコマンドを入力します。
find . -type f -exec du {} + | sort -rn | awk 'BEGIN {print "SIZE\tNAME"} {sum+=$1;print $0} END {print sum,"TOTAL"}'
これで直下のディレクトリのファイルの総サイズが取得できます。
カレントディレクトリにあるファイルの総サイズもこのやり方でわかりますが、タイプ数が多いので使うことはないでしょう
更に絞り込みたい場合はfind
の-name
オプションなどで細かくファイルを指定できます。