du コマンドでよく使うオプションのメモ。
du コマンドでわりとよく使うオプションのメモ。
普段は AWS の EC2 インスタンスに入って使うことが多いのでこのエントリーを書くときも EC2 インスタンスに入って du コマンドを実行した結果とかをメモっている。
du コマンドのバージョン。
$ du --version du (GNU coreutils) 8.22 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Torbjörn Granlund, David MacKenzie, Paul Eggert, and Jim Meyering.
du コマンドのオプション
du コマンドはディスクの使用量を表示するコマンド。
自分はちょいちょい使うわりにはオプションとかよく覚えてなくて使うたびにググったりが多い気がするのでよく使うオプションをメモしておく。
コマンドの動作は以下のディレクトリ構造とそれぞれ 1MiB のサイズの dat ファイルを配置して確認いく。
$ tree . ├── fuga │ ├── fuga-1.dat │ └── fuga-2.dat ├── hoge │ ├── hoge-1.dat │ └── hoge-children │ ├── hoge-children-1.dat │ ├── hoge-children-2.dat │ ├── hoge-children-3.dat │ ├── hoge-children-4.dat │ └── hoge-children-5.dat └── piyo ├── piyo-1.dat ├── piyo-2.dat └── piyo-3.dat
--help オプション: ヘルプ
--help
オプションを指定すると du コマンドの使い方を表示する……んだけど man du
が使えないときにしか使わない。
$ du --help Usage: du [OPTION]... [FILE]... or: du [OPTION]... --files0-from=F Summarize disk usage of each FILE, recursively for directories. Mandatory arguments to long options are mandatory for short options too. -0, --null end each output line with 0 byte rather than newline # 省略
オプションなし
du コマンドをオプションなしで実行するとカレントディレクトリ配下のサイズを再帰的に集計して表示する。
$ du 5120 ./hoge/hoge-children 6144 ./hoge 2048 ./fuga 3072 ./piyo 11264 .
-d, --max-depth オプション: 集計するディレクトリの階層を指定
-d
オプションか --max-depth
オプションで集計するディレクトリの階層を指定する。
du --max-depth 1
するとカレントディレクトリとカレントディレクトリ直下のディレクトリそれぞれのサイズをディレクトリごとに集計する。
$ du --max-depth 1 6144 ./hoge 2048 ./fuga 3072 ./piyo 11264 .
du --max-depth 0
を指定するとカレントディレクトリのサイズだけ集計する (= 階層がゼロ)
$ du --max-depth 0 11264 .
FILE: サイズを集計するディレクトリかファイル
オプションじゃないんだけど FILE についても書いておく。
$ du --help Usage: du [OPTION]... [FILE]... or: du [OPTION]... --files0-from=F
FILE はサイズを集計するディレクトリかファイルを指定する。
たとえば du fuga
と指定すると fuga ディレクトリのサイズを集計するし du piyo
と指定すると piyo ディレクトリのサイズを集計する。
$ du fuga 2048 fuga/ $ du piyo 3072 piyo
du fuga piyo
みたいに FILE を複数指定すると fuga ディレクトリと piyo ディレクトリそれぞれのサイズを集計する。
$ du fuga/ piyo/ 2048 fuga/ 3072 piyo/
du
みたいに FILE を指定しないときは du .
みたいにカレントディレクトリを指定するのと同じ。
$ du 5120 ./hoge/hoge-children 6144 ./hoge 2048 ./fuga 3072 ./piyo 11264 . $ du . 5120 ./hoge/hoge-children 6144 ./hoge 2048 ./fuga 3072 ./piyo 11264 .
-s, --summarize オプション: ディレクトリの合計サイズだけ表示
-s
オプションか --summarize
オプションを指定すると指定したディレクトリのサイズだけを表示する……と書くとなんのことやらだけど、ようはサブディレクトリごとのサイズは表示しなくなるということ。
=> --summarize
オプションは --max-depth 0
を指定するのと同じ
たとえば du .
みたいに --summarize
オプションを指定しないとカレントディレクトリとカレントディレクトリ配下のディレクトリそれぞれのサイズが表示されるけど、
$ du . 5120 ./hoge/hoge-children 6144 ./hoge 2048 ./fuga 3072 ./piyo 11264 .
du --summarize .
みたいに --summarize` オプションを指定するとカレントディレクトリのサイズだけ表示する。
$ du --summarize . 11264 .
-B, --block-size オプション: サイズの単位を指定
-B
オプションか --block-size
オプションでサイズの単位を指定する。
-B
オプションか --block-size
オプションを指定しないときは K
(KiB) を指定するのと同じ。
$ du --summarize . 11264 . $ du --summarize --block-size K . 11264K . $ du --summarize --block-size M . 11M .
-B
オプションか --block-size
オプションは以下を指定できる。
指定できる値 | 表示単位 |
---|---|
KB | キロバイト (KB) |
K | キビバイト (KiB) |
MB | メガバイト (MB) |
M | メビバイト (MiB) |
GB | ギビバイト (GB) |
G | ギビバイト (GiB) |
TB | テビバイト (TB) |
T | テビバイト (TiB) |
実は -B
オプションか --block-size
オプションは数字なら何でも指定できる。面倒くさいからやらないけど……
$ du --summarize --block-size KB . 11535kB . $ du --summarize --block-size 1000 . 11535 . $ du --summarize --block-size K . 11264K . $ du --summarize --block-size 1024 . 11264 .
-k, -m オプション: --block-size オプションの短縮形
-k
オプションと -m
オプションはそれぞれ --block-size K
と --block-size M
を指定するのと同じ。
$ du -k --summarize . 11264 . $ du -m --summarize . 11 .
-h, --human-readable オプション: 人間が読みやすくするやつ
-h
オプションか, --human-readable
オプションを指定するとサイズに応じた単位で表示する。
個人的にはディレクトリのサイズでソートしちゃうことが多いのであまり使わないオプション。
$ du --human-readable --summarize . 11M .