LoginSignup
51
42

More than 5 years have passed since last update.

duコマンドのサイズをわかりやすく表示してサイズ順にソートする

Last updated at Posted at 2014-09-11

やり方

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 を呼ぶ必要があります。

51
42
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
42