【ディーユー】

du とは?

💡 容量食いの犯人を見つける探偵、ディスクの重さを量る体重計
📌 このページのポイント
du — ディレクトリごとのディスク使用量 $ du -sh * | sort -rh | head -5 ディレクトリ サイズ logs/ 15G data/ 10G backup/ 6G src/ 1G config/ 200M 容量の犯人 → logs/ が15GBを占有!古いログの削除を検討
duのイメージ
ひよこ ひよこ

duコマンドってdfとどう違うの?

ペンギン先生 ペンギン先生

dfは「ディスク全体の空き容量」を見るコマンドで、duは「個々のファイルやフォルダのサイズ」を見るコマンドだよ。冷蔵庫の空き具合を見るのがdf、中に入っている食材それぞれの重さを量るのがduってイメージだね

ひよこ ひよこ

よく使うオプションはどれなの?

ペンギン先生 ペンギン先生

du -sh * が鉄板だよ。-sはサマリー(合計だけ表示)、-hは人間が読みやすい単位。これでカレントディレクトリの各フォルダのサイズがわかるんだ。さらに du -sh * | sort -rh | head -10 とすれば、サイズが大きい順にトップ10を表示できるよ

ひよこ ひよこ

ディスクがいっぱいのとき、犯人を見つけるにはどうすればいいの?

ペンギン先生 ペンギン先生

まず `df -h` で全体を見て、どのパーティションが満杯か確認。次に `du -sh /*` でルート直下の各ディレクトリのサイズを見て、大きいところに `cd` して `du -sh *` を繰り返す。こうやって階層を掘り下げていくと犯人が見つかるよ。よくある犯人は巨大なログファイルだね

ひよこ ひよこ

duの表示サイズとlsの表示サイズが違うことがあるんだけど、なぜなの?

ペンギン先生 ペンギン先生

鋭い観察だね!lsはファイルの「論理的なサイズ」を表示するけど、duは「実際にディスク上で使っているブロック数」を表示するんだ。スパースファイルという「中身がほぼ空のファイル」だとlsでは10GBと表示されるのにduでは数MBということがありえるよ。また、ハードリンクが複数あるファイルはduが重複カウントしないように工夫しているから、差が出ることもあるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「du」って出てきたら「ファイルやフォルダごとのディスク使用量を調べるコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「disk usage」 = ディスク使用量
💬 「disk(ディスク)」の「usage(使用量)」を表示するコマンドだよ。dfが「全体の残量」でduが「個別の重さ」を量るイメージだね
← 用語集にもどる