やり方
du
コマンドは -h
オプションで人間に読みやすい形式にできます。
% du -h
3.8M ./世界のさまざまなバレンタインとその習慣♥♥.key/Data
12K ./世界のさまざまなバレンタインとその習慣♥♥.key/Metadata
4.0M ./世界のさまざまなバレンタインとその習慣♥♥.key
2.7M ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Data
12K ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Metadata
3.0M ./世界のさまざまなバレンタインとその習慣♥♥_pub.key
7.0M .
しかし、3.8Mや12Kという値では sort
コマンドでソートすることができません。
そこで、du
をバイト単位で表示し、sort
を使ってソートしてからcoreutilsにある numfmt
コマンドでわかりやすい単位をつけます。
Linuxなどを使っていてGNU coreutilsが入っていれば何も考えずに
du -b | sort -n | numfmt --to=iec --suffix=B --padding=5
と打ちましょう。すると
% du -b | sort -n | numfmt --to=iec --suffix=B --padding=5
819B ./世界のさまざまなバレンタインとその習慣♥♥.key/Metadata
819B ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Metadata
2.6MB ./世界のさまざまなバレンタインとその習慣♥♥_pub.key/Data
2.8MB ./世界のさまざまなバレンタインとその習慣♥♥_pub.key
3.5MB ./世界のさまざまなバレンタインとその習慣♥♥.key/Data
3.8MB ./世界のさまざまなバレンタインとその習慣♥♥.key
6.5MB .
なんだかいい感じですね。
やってること
-
du
の-b
オプションでブロックサイズ単位からバイト単位で表示されます。 -
sort -n
でファイルサイズ順に昇順でソートされます。 -
numfmt
コマンドでいい感じにしてくれます。
OS Xでこれをやりたい
numfmt
コマンドはGNU coreutilsにしかないので、Mac OS XではHomebrewでインストールすれば使えるようになります。
brew install coreutils
どうやらBSDの du
はバイト単位で表示する機能がないようです。よって、du
もcoreutilsのものを使う必要があります。デフォルトだとインストールされるコマンドにgというプリフィックスがつくので、その場合は
gdu -b | sort -n | gnumfmt --to=iec --suffix=B --padding=5
と gnumfmt
を呼ぶ必要があります。