Linuxのduコマンド完全ガイド オプション・出力結果の見方・現場で役立つ活用法を徹底解説!

最終更新日 2025年1月19日

duコマンド
使い方
現場利用例で解説!

duコマンドの全オプション一覧を確認したいという方は下記のリンクで街頭の場所にジャンプできます!

duコマンドの全オプション一覧

スポンサーリンク

Linuxのduコマンドとは?

Linuxを使っていると、ディスクの使用状況を確認したい場面がよくあります。サーバー管理者や開発者にとって、ディスク容量の管理は重要な業務のひとつです。そんなときに便利なのが du コマンドです。

du(Disk Usageの略)コマンドは、指定したディレクトリやファイルのディスク使用量を表示するコマンドで、どのフォルダが容量を圧迫しているのかを簡単に調べることができます。

本セクションでは下記について解説します。

  1. duコマンドの役割
  2. du コマンドのユースケース
  3. なぜディスク使用量の確認が重要なのか?
  4. lsコマンドやdfコマンドとの違い
Linuxのduコマンドの概要
duコマンドはLinuxでディスク使用量を確認するための基本的かつ重要なツールです。
概要
duは「Disk Usage」の略で、指定されたファイルやディレクトリのディスク使用量を表示するコマンドです。どのフォルダが容量を占めているかを簡単に確認できます。
主な役割
duコマンドを使うことで、特定のディレクトリやファイルのサイズ、ディレクトリごとの使用量、ディスク容量を大量に消費しているフォルダの特定などが可能です。
Linuxのduコマンドの概要

duコマンドの役割

du コマンドを使うことで、以下のような情報を取得できます。

  • 特定のディレクトリやファイルのサイズ
  • 各ディレクトリの使用量を階層ごとに表示
  • ディスク容量を消費している大きなフォルダの特定

du コマンドのユースケース

新人エンジニア
新人エンジニア

duコマンドはどのような場面で使用することが多いんですか?

先輩エンジニア
先輩エンジニア

当方が実際に現場で利用した経験からすると以下3つのケースで利用することが多かったです。
❶サーバーのディスク容量が不足している。どのフォルダが大きいのか調べたい!
❷バックアップ用のディレクトリのサイズを確認したい!
❸不要なデータを削除して空き容量を増やしたい!

Linuxのduコマンドの役割
duコマンドは、ディレクトリやファイルのディスク使用量を確認するための強力なツールです。
ディレクトリのサイズ確認
duコマンドは、特定のディレクトリやファイルのディスク使用量を表示することができます。これにより、どの部分がディスクを多く使っているのかを把握できます。
使用量の階層表示
各ディレクトリの使用量を階層ごとに表示できます。これにより、ディスク空間を圧迫している大きなフォルダを簡単に見つけることができます。
大きなフォルダの特定
ディスク容量が不足しているとき、duコマンドを使ってどのフォルダが大きな容量を占めているかを特定し、対応することができます。
Linuxのduコマンドの役割
スポンサーリンク

なぜディスク使用量の確認が重要なのか?

Linuxサーバーやローカル環境でディスクがいっぱいになると、次のような問題が発生するため、ディスク使用量の確認が必要になります。

新しいファイルを保存できない → アプリやシステムが正常に動作しなくなる
ログファイルが溜まりすぎる → 重要なログの記録ができなくなる
システムパフォーマンスの低下 → スワップ領域が不足し、動作が遅くなる

そのため、定期的にディスク使用量を確認し、不要なファイルを削除することが重要です。

ディスク使用量確認の重要性
ディスク使用量を確認することで、システムのパフォーマンス低下やデータ喪失を防止できます。
新しいファイル保存不可
ディスクが満杯になると、新しいデータを保存できなくなり、重要なアプリケーションやサービスが停止するリスクがあります。定期的な確認が必要です。
ログファイル溜まりすぎ
ログファイルが溜まりすぎると、重要なシステムメッセージが記録できなくなります。これにより、問題発生時のトラブルシューティングが困難になります。
システム性能低下
ディスクのスワップ領域が不足すると、システムパフォーマンスが大幅に低下します。適切に管理することで、システムの安定性と速度が保たれます。
ディスク使用量確認の重要性
スポンサーリンク

lsコマンドやdfコマンドとの違い

ディスク容量を確認するコマンドには、lsdf もありますが、それぞれ役割が異なります。

コマンド役割
duファイルやディレクトリごとのディスク使用量を表示
ls -l各ファイルのサイズを表示(ただし、ディスク使用量とは異なる)
dfファイルシステム全体の空き容量と使用量を表示

例えば、ls -lh コマンドでファイルサイズを確認できても、実際にディスク上で占有しているサイズとは異なる場合があります。そのため、ディスクの使用状況を正確に把握するには du コマンド を使う必要があります。

次のセクションでは、du コマンドの基本的な使い方を詳しく解説していきます!

lsコマンドやdfコマンドとの違い
du、ls、dfの基本的な役割と用途の違いを理解し、適切なコマンドを選べるようになりましょう。
duコマンド
duコマンドは、ファイルやディレクトリごとのディスク使用量を表示します。特定のディレクトリやファイルがどれだけディスク容量を使っているのかを階層ごとに表示するのに非常に適しています。
lsコマンド
lsコマンドは、ディレクトリ内のファイルやサブディレクトリの一覧を表示します。オプションをつけることでファイルサイズや詳細な属性を確認できますが、ディスク上での実際の占有量を示すわけではありません。
dfコマンド
dfコマンドは、ファイルシステム全体の空き容量と使用量を表示します。ディスクの状況を大まかに把握するために使われ、システム全体の容量管理を行うのに有用ですが、フォルダごとの詳細な使用量は示しません。
lsコマンドやdfコマンドとの違い
スポンサーリンク

duコマンドの基本的な使い方

du コマンドは、Linuxのファイルやディレクトリのディスク使用量を確認するために使われる便利なコマンドです。このセクションでは、基本的な使い方を解説し、シンプルな例やよく使うオプションについて紹介します。

このセクションでは以下について説明します。

  1. duコマンドのみ(オプション無)の実行例
  2. duコマンドの基本構文
  3. よく使う基本オプション一覧
  4. オプションの使用例
duコマンドの基本を理解して
ディスク使用量を効率的に確認する方法を習得しましょう。
基本構文
duコマンドは、「du [オプション] [対象ディレクトリ]」という形式で使用します。
確認できること
duコマンドを実施するとディスク使用量の確認が可能です。

duコマンドのみ(オプション無)の実行例

まずは、du コマンドをオプションなしで実行してみましょう。オプション無しで実行すると、現在のディレクトリのディスク使用量を確認できます。

コマンド例

du

実行結果

4096    ./documents
20480   ./backup
512000  .

この出力結果の意味は以下の通りです。

4096 ./documentsdocuments フォルダのディスク使用量は 4KB
20480 ./backupbackup フォルダのディスク使用量は 20MB
512000 . → カレントディレクトリ全体のディスク使用量は 500MB

新人エンジニア
新人エンジニア

オプション無しで実行すると、現在のディレクトリのディスク使用量を確認できるんですね。
でもこの出力結果だと、ディスクの使用量が見づらいです。。。
私計算が苦手なので。。。

先輩エンジニア
先輩エンジニア

デフォルトでは、各フォルダのサイズがバイト単位で表示されます。このままだと数値が分かりにくいため、後ほど紹介する -h オプション を使うと見やすくなりますよ!

Centosにおけるduコマンドの実際の出力結果
Centosにおけるduコマンドの実際の出力結果
スポンサーリンク

duコマンドの基本構文

du コマンドの基本的な書き方は以下の通りです。

du [オプション] [対象ディレクトリ]
先輩エンジニア
先輩エンジニア

例えば、/home/user ディレクトリの使用量を調べたい場合は、以下のように実行します。
du /home/user

新人エンジニア
新人エンジニア

そうなんですね。他には何か使い方とかあるんですか?

先輩エンジニア
先輩エンジニア

他にも、特定のファイルのディスク使用量を出力することが可能でその場合は、ファイル名を指定すればOKです。
du myfile.txt

du コマンドでディレクトリとファイルを指定した際の実際の出力結果
du コマンドでディレクトリとファイルを指定した際の実際の出力結果

よく使う基本オプション一覧

du コマンドには多くのオプションがありますが、特によく使われるものを紹介します。

オプション説明使用例
-h(--human-readable)人間が読みやすいサイズ(KB、MB、GB)で表示du -h
-s(--summarize)ディレクトリ全体の合計サイズのみ表示du -sh /var/log
-c(--total)合計サイズを最後に表示du -ch /home/user
-a(--all)ファイルごとのサイズも表示du -ah /home/user
-d N(--max-depth=N)階層をNレベルまで表示du -h --max-depth=1 /home/user
-x(--one-file-system)異なるファイルシステムをまたがない(異なるファイルシステムにマウントされているディレクトリを無視 して計算する)du -hx /
新人エンジニア
新人エンジニア

du -x(または du --one-file-system)オプションの意味が良く分からないので教えてください。

先輩エンジニア
先輩エンジニア

du -x(または du –one-file-system)オプションは、異なるファイルシステムをまたがずにディスク使用量を計算する ためのオプションです。

通常、du コマンドを実行すると、指定したディレクトリ以下のすべてのファイル・フォルダのサイズを計算します。
しかし、-x オプションを使うと、異なるファイルシステムにマウントされているディレクトリを無視 して計算することができます。

新人エンジニア
新人エンジニア

どんな時に使うんですか?

先輩エンジニア
先輩エンジニア

具体的には、以下のようなシーンで使用します。

  • ディスクの空き容量を確認するときに、特定のパーティションだけを調べたい
  • 外付けHDDやネットワークドライブ(NFS)がマウントされている環境で、本体のストレージのみを分析したい
  • du の計算速度を上げるために、不要なファイルシステムを除外したい
duコマンドの使い方の基本を説明し、頻繁に用いるオプションを簡潔に理解しましょう。
-hオプション
-h(--human-readable)オプションを使うと、サイズをKB、MB、GBなどの単位で分かりやすく表示できます。これにより数値が大きくても直感的に理解できるようになります。
-sオプション
-s(--summarize)オプションは、ディレクトリ全体のサイズを表示するために用います。これにより、各サブディレクトリのサイズを細かく見ることなく、合計サイズを一目で把握できます。
-d Nオプション
-d N(--max-depth=N)オプションは、指定した層までのディレクトリのサイズのみを表示します。例えば、-d 2ならば、トップディレクトリとその二層下までのサイズを確認できます。
duコマンドの使い方の基本を説明し、頻繁に用いるオプションを簡潔に理解しましょう。
スポンサーリンク

オプションの使用例

下記の4つのオプションの使用例と出力結果について解説します。

  1. 人間が読みやすい単位で表示(-h オプション)
  2. ディレクトリの合計サイズのみ表示(-s オプション)
  3. ディスク使用量を階層別に表示(–max-depth=N オプション)
  4. ディスクを圧迫している大きなフォルダを探す(sort と head の組み合わせ)
  5. duコマンドの全オプション一覧
先輩エンジニア
先輩エンジニア

duコマンドのマニュアルは下記コマンドを実行することで確認できます。
コマンド:man du

duコマンドのマニュアル
duコマンドのマニュアル

人間が読みやすい単位で表示(-h オプション)

デフォルトの du コマンドはバイト単位の数値を出力しますが、-h オプションを使うと KB, MB, GB などの単位 で表示できます。

コマンド例

du -h

実行結果

4.0K    ./documents
20M     ./backup
500M    .

実行結果の見方と考え方

4.0K ./documents
documents フォルダのサイズは 4KB(4,096バイト)
→ ファイルがほとんど入っていない、またはフォルダ自体のメタデータのみの可能性

20M ./backup
backup フォルダのサイズは 20MB
→ いくつかの大きなファイルが格納されていると考えられる

500M .
→ カレントディレクトリ(現在のフォルダ)全体のディスク使用量は 500MB
documentsbackup を含む、すべてのサブディレクトリ・ファイルの合計サイズ

ちなみにdu -hオプションは、マニュアルには下記のように記載されています。

du -hのマニュアルの記載
du -hのマニュアルの記載
スポンサーリンク

ディレクトリの合計サイズのみ表示(-s オプション)

通常の du コマンドは各フォルダのサイズを細かく表示しますが、特定のディレクトリの合計サイズだけ を知りたい場合は -s オプションを使います。

コマンド例

du -sh /var/log
先輩エンジニア
先輩エンジニア

ちなみに上記のコマンドの意味は以下です。
du -ah . → 現在のディレクトリ(.)内の すべてのファイルとフォルダのサイズを取得-a によりファイルも含む、-h で人間が読みやすい単位に変換)
sort -rh サイズが大きい順にソート-r:降順、-h:人間が読みやすい単位に対応)
head -10 上位10件のみを表示(ディスク使用量の大きい順に10件だけリストアップ)

実行結果

2.1G    /var/log

上記の出力結果から、/var/log ディレクトリ全体の使用量が 2.1GB であることが分かります。

du -sh /var/logの実際の出力結果
du -sh /var/logの実際の出力結果
スポンサーリンク

ディスク使用量を階層別に表示(--max-depth=N オプション)

du はデフォルトでサブディレクトリの情報もすべて表示しますが、表示する深さを制限したい場合は --max-depth=N を使います。

例えば、/home/user の直下のフォルダだけのサイズを知りたい場合は以下のように実行します。

コマンド例

du -h --max-depth=1 /home/user

実行結果

2.1G    /home/user/downloads
500M    /home/user/documents
10G     /home/user/videos
15G     /home/user

この du -h --max-depth=1 /home/user の出力結果は、/home/user の直下にあるディレクトリごとのディスク使用量を表示 しています。--max-depth=1 を指定しているため、1階層目のフォルダのみ のサイズが表示され、それ以上のサブフォルダの詳細は省略されています。

du -h --max-depth=1 /home/userの上記の出力結果
du -h --max-depth=1 /home/userの上記の出力結果
スポンサーリンク

ディスクを圧迫している大きなフォルダを探す(sorthead の組み合わせ)

ディスクの空き容量が少なくなったとき、どのフォルダが最も容量を消費しているのかを調べたい場合があります。

以下のコマンドを実行すると、現在のディレクトリ内でディスクを大量に使用しているフォルダ トップ10 を表示できます。

コマンド例

du -ah . | sort -rh | head -10

実行結果

10G     ./videos
2.1G    ./downloads
1.5G    ./backup
800M    ./documents

最も容量を消費しているのは videos(10GB)、次に downloads(2.1GB)、backup(1.5GB)だということが読みとれます。
不要なものがあれば削除して、ディスクの空きを増やしましょう!

du -ah . | sort -rh | head -10コマンドの実際の出力結果
du -ah . | sort -rh | head -10コマンドの実際の出力結果
スポンサーリンク

duコマンドの全オプション一覧

duコマンドのオプションを一覧化すると以下になります。

オプション説明使用例
-0, --null出力の各行を改行ではなく NUL 文字で終わらせるdu -0
-a, --allディレクトリだけでなく、すべてのファイルのサイズを表示du -a /home
--apparent-size実際のファイルサイズを表示(ディスク使用量とは異なる場合あり)du --apparent-size /var
-B, --block-size=SIZE指定したブロックサイズ(例: -BM で1MB単位)で表示du -BM /home
-b, --bytes--apparent-size + --block-size=1 と同じ(バイト単位 で表示)du -b /var/log
-c, --total合計サイズを最後に表示du -ch /home /var
-D, --dereference-argsコマンドラインで指定した シンボリックリンクのみ解決du -D /path/symlink
-d, --max-depth=N指定した階層(N)までのサイズのみ表示du -h --max-depth=2 /home
--files0-from=FNUL区切りのファイル名リスト(F)からディスク使用量を計算du --files0-from=filelist.txt
-H-D と同じ(コマンドラインで指定した シンボリックリンクのみ解決)du -H /symlink
-h, --human-readableKB/MB/GB単位 で分かりやすく表示du -h /var
--inodesブロック使用量ではなく inode 使用量を表示du --inodes /home
-kサイズを1KB単位で表示du -k /home
-L, --dereferenceすべてのシンボリックリンクを解決du -L /symlink
-l, --count-linksハードリンクを別々のファイルとしてカウントdu -l /hardlink
-mサイズを1MB単位で表示du -m /var/log
-P, --no-dereferenceシンボリックリンクをたどらない(デフォルト設定)du -P /symlink
-S, --separate-dirsサブディレクトリのサイズを含めずにフォルダ単体のサイズを表示du -S /var
--si-h と似ているが、1000の倍数(MB=1000KB)で計算du --si /var
-s, --summarize指定したディレクトリの合計サイズのみ表示du -sh /home
-t, --threshold=SIZE指定したサイズ以下/以上のエントリを除外du -h -t 1M /var
--timeディレクトリ内のファイルの最終更新時刻を表示du --time /home
--time=WORDアクセス時間(atime)、変更時間(mtime)などを選択du --time=atime /var
--time-style=STYLE時刻のフォーマットを指定(iso, full-iso, long-iso など)du --time-style=full-iso
-X, --exclude-from=FILE指定したファイルリスト(FILE)にあるパターンを除外du -X exclude_patterns.txt /home
--exclude=PATTERN指定したパターンのファイルを除外du --exclude=*.log /var
-x, --one-file-system異なるファイルシステムをまたがずに計算du -x /
--helpヘルプを表示して終了du --help
--versionバージョン情報を表示して終了du --version

次のセクションでは、より実践的な使い方を紹介します!

duコマンドと組み合わせて使うと便利なコマンド

du コマンドは、他のLinuxコマンドと組み合わせることで、より便利に使えます。
特に findsortawk などは、ディスク管理をより効率化するために役立ちます。

今回はfind、awkとduコマンドを組み合わせた便利なコマンドを紹介します。

duコマンドと組み合わせて使うと便利なコマンド
findとawkを使えば、duコマンドの出力をさらに有効活用できます
findコマンドの活用
特定の条件でファイルやディレクトリを検索します
awkコマンドの活用
データを加工・整形し、出力を見やすくします
duコマンドと組み合わせて使うと便利なコマンド
スポンサーリンク

find + du 特定のサイズ以上のファイルを検索

例えば、1MB 以上のファイルを探し、そのサイズを du で表示するには、以下のようにします。

find /home -type f -size +1M -exec du -h {} +
先輩エンジニア
先輩エンジニア

このコマンドは、まず、find /home によって /home ディレクトリ以下を検索対象にします。
次に、-type f を指定することで、ディレクトリではなく ファイル(f) のみを検索対象 にします。
-size +100M という条件を指定することで、サイズが100MBを超えるファイル のみを抽出します。
最後に、-exec du -h {} + を実行することで、見つかったファイルのサイズを du -h(人間が読みやすい単位で表示するオプション付き) で表示します。

find /home -type f -size +1M -exec du -h {} +コマンドの実際の出力結果
find /home -type f -size +1M -exec du -h {} +コマンドの実際の出力結果
スポンサーリンク

awk + du カスタマイズしたサイズ表示

特定のディレクトリの合計サイズを GB 単位で表示するには、awk を使って計算します。

du -s /var | awk '{printf "%.2f GB\n", $1/1024/1024}'

このコマンドは、/var ディレクトリの合計サイズを取得し、それをGB単位で分かりやすく表示するためのものです。

まず、du -s /var を実行すると、/var ディレクトリ全体の使用量が表示されます。このとき、サイズの単位はKBであり、フォルダごとの詳細は表示されず、合計値のみが出力されます。例えば、/var のディスク使用量が5GBだった場合、5242880 /var という結果が得られます。この数値は5242880KBを示しており、1GB=1024MB、1MB=1024KB であるため、5GBに相当します。

次に、awk を使ってこの数値をGB単位に変換し、より見やすい形式に整えます。awk はテキスト処理を行うコマンドであり、ここでは$1 を使って du の出力の最初の数値(KB単位のサイズ)を取得し、それを /1024/1024 で割ることでGB単位に変換します。そして printf “%.2f GB\n” を使用することで、小数点2桁までのGB表記に整形します。

この処理によって、出力結果は 5.00 GB のようにGB単位で表示されます。

du -s /ディレクトリ名 | awk '{printf "%.2f GB\n", $1/1024/1024}'の実際の出力結果
du -s /ディレクトリ名 | awk '{printf "%.2f GB\n", $1/1024/1024}'の実際の出力結果

この記事も参考になるかも!
この記事を書いた人!

ゴリタン

インフラエンジニアとして、ネットワークとサーバーの運用・保守・構築・設計に幅広く携わり、
現在は大規模政府公共データの移行プロジェクトを担当。

CCNPやLPICレベル3、AWSセキュリティスペシャリストなどの資格を保有しています。