ディレクトリとファイルのサイズを集計するコマンド
基本的な使い方
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
サブディレクトリを含む全てのディレクトリを集計する。
$ du
8 ./data
36 .
......
直下のディレクトリのみ、単位付きで表示する。
du ./* -sh
単位をMBで統一して表示する
du ./ -BM
基本オプション
| オプション |
長いオプション |
内容 |
| -a |
--all |
ディレクトリだけではなくファイルも出力する |
| -BK |
--block-size=K |
単位をKBで統一して出力する |
| -BM |
--block-size=M |
単位をMBで統一して出力する |
| -BG |
--block-size=G |
単位をGBで統一して出力する |
| -c |
--total |
全ての容量の合計値を出力する |
| -d |
--max-depth |
調べるディレクトリの深さを指定する |
| -h |
--human-readable |
読みやすいフォーマットを自動判定して出力する |
| -s |
--summarize |
指定されたディレクトリのサマリだけを出力する |
サイズを調べるディレクトリの深さを指定する
一番 使っているのは -s オプション。
*(アスタリスク)と組み合わせることで複数のディレクトリの使用容量を調べることが出来る。
du ./* -s
du ./*/* -s
ディレクトリの深さを指定するのに -d --max-depth オプションも利用できる。
du ./ -d 0
du ./ -d 1
du ./ --max-depth 2
指定できるサイズの単位
KBやMBといったサイズの単位は -B もしくは --block-size で指定する。
仕様できるサイズは K, M, G, T, P, E, Z, Y 。
大きな単位を指定した場合、端数は切り上げられるっぽい。
du -BK
du --block-size=K
du -BM
du --block-size=M
du -BG
du --block-size=G
du -BT
du --block-size=T
du -BP
du --block-size=P
du -BE
du --block-size=E
du -BZ
du --block-size=Z
du -BY
du --block-size=Y
ファイルの時間に関する情報を調査する
du コマンドはサイズの集計だけでなく、時間(タイムスタンプ)を調査することもできる。
| オプション |
内容 |
| --time=WORD |
指定したWORDの時間情報を出力する |
| --time-style=STYLE |
--time で指定した時間情報のフォーマットを指定する |
--time オプション
ディレクトリ内の任意のファイルの時間に関する情報を出力する。
指定できるのは atime, access, use, ctime, status 。
デフォルトだとディレクトリ内の任意のファイルの最終更新日時を出力する。
$ du --time
1896 2025-09-09 10:00 .
$ du --time=atime
1896 2025-09-11 13:32 .
$ du --time=access
1896 2025-09-11 13:32 .
$ du --time=ctime
1896 2025-09-09 10:00 .
$ du --time=status
1896 2025-09-09 10:00 .
--time-style オプション
フォーマットを指定して出力する。
使用できるのは full-iso, long-iso, iso と +FORMAT 。
+FORMATは%Y,%m,%d, %H, %M, %S を使用して組み替える。
$ du --time --time-style=full-iso
1896 2025-09-09 10:00:19.821080576 +0900 .
$ du --time --time-style=long-iso
1896 2025-09-09 10:00 .
$ du --time --time-style=iso
1896 2025-09-09 .
$ $ du --time --time-style="+%Y/%m/%d %H:%M:%S"
1896 2025/09/09 10:00:19 .
特定のファイルを除外して集計する
| オプション |
長いオプション |
内容 |
| -t |
--threshold=SIZE |
指定したサイズ以上、もしくは以下のファイルを除外する |
| -X |
--exclude-from=FILE |
指定した名前パターンにマッチするファイルを除外する |
| |
--exclude=PATTERN |
指定したパターンにマッチするファイルを除外する |
-a オプションと組み合わせることで指定したサイズ以上のファイルを探すことが出来る
$ du -t -500
$ du -t 500
$ du --threshold=200MB
$ du --exclude-file="hoge"
$ du --exclude-file="-"
$ du --exclude="hoge"
$ du --exclude="*.log"
あまり使わないオプション
| オプション |
長いオプション |
内容 |
| -0 |
--null |
結果を改行なしで出力す |
| |
--apparent-size |
ディスクの使用量ではなく見かけのサイズを表示する。断片化等が原因で大きく見えることもある。 |
| -b |
--bytes |
--block-size=1 を指定した時と同じ |
| |
--files0-from=F |
あらかじめ用意したディレクトリのリストを F で指定して集計する |
| -k |
|
--block-size=1K を指定した時と同じ |
| -m |
|
--block-size=1M を指定した時と同じ |
| -D |
--dereference-args |
コマンドラインで指定されたシンボリックリンクを参照する |
| -H |
|
-D と同じ |
| |
--inodes |
ブロック使用量ではなくiノード使用量を出力する |
| -l |
--count-links |
ハードリンクされている場合、複数回カウントする |
| -L |
--dereference |
シンボリックリンクを参照する |
| |
--si |
-h と同じだが、1024 ではなく 1000 の累乗で計算する |
| -P |
--no-dereference |
シンボリックリンクを辿らない。(デフォルト) |
| -S |
--separate-dirs |
サブディレクトリのサイズを含めない |
| -x |
--one-file-system |
異なるファイルシステムのファイルをスキップする |
参考
https://www.gnu.org/software/coreutils/du