【ディーユー】

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が「個別の重さ」を量るイメージだね
← 用語集にもどる