dfとduの容量が合わないのはなぜ? ― ファイルシステム全体と見えるファイルを分ける

Linux・CLI・DevOpsカテゴリを表すパンダのイラスト Linux・CLI・DevOps

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。GNU Coreutilsのdf/du仕様を確認し、容量不足時に削除から始めず「何を測っている数字か」を分ける手順へ整理しました。Ubuntu実機での再実行は行っていません。

検証ステータス:📘 GNU公式仕様確認済み・Ubuntu実機未確認
情報確認日:2026年10月2日。

dfとduはどちらもディスク容量を見るコマンドですが、同じ対象を同じ方法で数えているわけではありません。

まず読み取り専用で見る

TARGET="\${1:-$HOME}"
df -h "$TARGET"
du -sh "$TARGET"

dfはファイルシステム側の使用量を見る入口です。duは指定ディレクトリ以下を辿り、見つけたファイルの使用量を集計します。

数字が違う理由を分ける

  • dfはファイルシステム全体を見る

  • duは指定パス以下だけを見る

  • duが権限上たどれない場所がある

  • 別マウントを含むかどうかが違う

  • 削除済みでもプロセスが開いたままのファイルなど、名前から辿る集計だけでは見えにくい場合がある

1か所変える

TARGET="$HOME/Downloads"
df -h "$TARGET"
du -sh "$TARGET"

dfの対象ファイルシステムは同じでも、duの集計範囲が小さくなることを観察します。

flowchart TD
 A["容量が合わない"] --> B["df: filesystem"]
 A --> C["du: path走査"]
 B --> D["対象mount"]
 C --> E["範囲/権限"]
 D --> F["差を切り分け"]
 E --> F

仕事で使うなら

容量逼迫時にいきなり削除せず、dfで対象ファイルシステムを特定し、duで範囲を狭めます。

「同じディスクなのに違う数字」の見方

dfとduの差は、どちらかが間違っているとは限りません。dfはfilesystem側から使用状況を見ますが、duはdirectory treeを辿って見つけたfileを積み上げます。つまり観測地点が違います。

特に障害調査では「削除したのにdfが戻らない」という現象があります。プロセスが削除済みfileをopenしたままなら、directory名からは見えにくくても領域がまだ解放されていない場合があります。この記事の最小実験ではそこを再現しませんが、df/du差が残ったときの次の調査候補になります。

またduの対象pathとdfが示すmount pointを混同しないことも重要です。まずfilesystemを特定し、その後directory単位へ狭める順番にすると、慌てて大きなfileを削除する事故を減らせます。

公式情報・一次情報

GitHubサンプル

文書情報

記事タイトル
dfとduの容量が合わないのはなぜ? ― ファイルシステム全体と見えるファイルを分ける
作成日
更新日
Source URL
https://papanda925.com/?p=17502

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました