• このエントリーをはてなブックマークに追加

13年ほど昔、会社の先輩に教わった方法です。複数のファイルの合計サイズをawkコマンドで簡単に算出できます。多分、知っている人は知っているテクニックだと思いますが、知らない方のお役に立てれば。

まず、合計サイズを計算したいファイルをlsコマンドで確認します。

# ls -l messages*
-rw---- 1 root root  572080 Dec 13 04:02 messages.4
-rw---- 1 root root  975690 Dec 20 04:02 messages.3
-rw---- 1 root root 1021894 Dec 27 04:02 messages.2
-rw---- 1 root root  953634 Jan  3 04:02 messages.1
-rw---- 1 root root  474283 Jan  6 22:16 messages

標準出力された結果から、ファイルサイズが表示されたカラムが左から何番目か確認します。この例の場合、5番目になります。確認できたら、先程のlsコマンドの後にパイプをつけ、下記の様にawkコマンドに 渡します。

# ls -l messages* | awk '{i+=$5}END{print i}'
3997581

上記の通り、awkコマンドのi+=$?には先程確認したファイルサイズがあるカラム番号を指定します。例だと$5となります。出力結果はご覧の通り、各ファイルサイズが合計された数が出力されます。

あまり使い道は無いかもしれませんが、特定のファイルだけを削除した場合、どの程度ファイルシステムの容量が空くか実行前に確認する時に使っていました。もし使う機会があれば思い出して下さいね。

  • このエントリーをはてなブックマークに追加