du はディレクトリごとの使用量を調べるコマンドです。合計だけ出す `-sh`、1階層だけ見る `--max-depth=1`、大きい順に並べる書き方を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-06
du [オプション] [ディレクトリ]
指定しなければ、いまいる場所を起点にします。
-h を付けると、読みやすい単位で出ます。
$ du -h
24K ./logs
4.0K ./src
4.0K ./docs
4.0K ./node_modules/left-pad
12K ./node_modules/lodash
20K ./node_modules
56K .
下から順に集計されていて、最後の行がこのディレクトリ全体です。
合計だけでよければ -s を付けます。
$ du -sh
56K .
-s は summarize、-h は human readable の頭文字です。
この2つはほぼ常に組にして使います。
素の du は下まで全部たどるので、node_modules の中身まで並んでしまいます。
--max-depth=1 を付けると、1階層ぶんの内訳になります。
$ du -h --max-depth=1
24K ./logs
4.0K ./src
4.0K ./docs
20K ./node_modules
56K .
これで「logs が重い」と分かります。
重いディレクトリの中で同じことを繰り返すのが、犯人にたどり着く最短の手順です。
$ du -sh logs
24K logs
数が多いときは sort につなぎます。
$ du -s * | sort -nr
24 logs
20 node_modules
5 src
5 docs
1 README.md
ここで -h を外しているのには理由があります。
-h の出力は 4.0K と 12M のように単位が混ざるので、数として並べ替えると桁が合いません。
並べるときはブロック数のまま扱い、当たりが付いてから -sh で読み直します。
--exclude で、集計から外せます。
$ du -h --exclude=node_modules
24K ./logs
4.0K ./src
4.0K ./docs
36K .
自分で消せないもの(node_modules や .git)を外しておくと、消せるものだけが見えます。
du は、ディスクが埋まった原因を突き止めるときに打つコマンドです。
| 場面 | 打ち方 |
|---|---|
| このディレクトリ全体の大きさを知る | du -sh . |
| どこが重いか1階層ずつ追う | du -h --max-depth=1 |
| 大きい順に並べる | du -s * | sort -nr |
| 特定のディレクトリだけ測る | du -sh logs |
| 消せないものを除いて測る | du -h --exclude=node_modules |
単位の付いていない数字はブロック数です。
$ du -s
56 .
1ブロックは 1KB なので、56 は 56KB のことです。
人に見せる数字なら -h、並べ替えるならブロック数のまま、と使い分けます。
存在しないパスは、そう言われます。
$ du -sh nope
du: cannot access 'nope': No such file or directory
du はディレクトリを下までたどります。
巨大なディレクトリでそのまま打つと、結果が出るまで待たされます。
--max-depth=1 を付けて、上の階層から順に降りるほうが速く終わります。
df と数字が合わないことがあります。
消したはずのファイルをまだ開いているプロセスがあると、du からは見えないのに df の使用量は減りません。
df が減らないときは、ファイルを掴んだままのプロセスを疑ってください。
webterm.appこのサイト
ターミナル応用
特定場面で役立つコマンドを学ぶ
learn.webterm.app別のサイト
