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

サイズのサイズ順のファイルのリストを作る

愚直に探すなら、du、sortを使うことで、ファイルサイズ準に並べて出力することができます。 基本的には、du -kの出力をsortします。

小さい順なら

# du -k <パス> | sort -n

大きい順なら

# du -k <パス> | sort -nr

ただ、これでは出力が多すぎるので、ファイルに保存するか、 tailなどで出力を絞った方が実用的です。

# du -k / | sort -n | tail -10

逆順がよければ

# du -k / | sort -nr | head -10

du自体も遅いですが、sortも負けずおとらず負荷の高い処理だと思います。 まじめにこれを実行するとかなり時間がかかるので、 サービスに影響するようなマシンでの実行はあまりおすすめできません。 特定のディレクトリ配下だけの実行にとどめておいた方が良いと思います。

以下は手元のMacで/var/log配下だけの出力です。

$ sudo du -k /var/log | sort -n | tail -10
44      /var/log/com.apple.launchd.peruser.202
76      /var/log/com.apple.launchd.peruser.89
116     /var/log/asl/AUX.2014.04.09
124     /var/log/asl/AUX.2014.04.08
1356    /var/log/com.apple.launchd.peruser.501
1860    /var/log/DiagnosticMessages
2484    /var/log/powermanagement
2828    /var/log/asl
6836    /var/log/com.apple.launchd
20624   /var/log

とか、

$ sudo du -k /var/log | sort -nr | head -10
20628   /var/log
6836    /var/log/com.apple.launchd
2828    /var/log/asl
2484    /var/log/powermanagement
1864    /var/log/DiagnosticMessages
1356    /var/log/com.apple.launchd.peruser.501
124     /var/log/asl/AUX.2014.04.08
116     /var/log/asl/AUX.2014.04.09
76      /var/log/com.apple.launchd.peruser.89
44      /var/log/com.apple.launchd.peruser.202

指定サイズ以上のファイルを列挙する

別の手段として指定サイズ以上のファイルを探すというのがあります。

find <パス> -size <サイズ> -ls

100MB以上のファイルを探す例)
find / -size 100000K -ls

こちらの出力はsortに適していないので、 サイズ順に並べたい場合は多少工夫が必要です。




記事一覧へ