【 du 】コマンド――ディスクの使用量を表示するLinux基本コマンドTips(59)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「du」コマンドです。

» 2016年10月25日 05時00分 公開
[西村めぐみ@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ディレクトリごとにディスクの使用量を集計して表示する「du」コマンドです。

duコマンドとは?

 「du」は、ディスクの使用量をディレクトリごとに集計して表示するコマンドです。ファイルを指定した場合は指定したファイルのサイズのみ、ディレクトリを指定した場合はそのディレクトリおよび全てのサブディレクトリの使用量を集計します。対象を指定しなかった場合は、カレントディレクトリの使用量が表示されます。

 なお、アクセス権限のないファイルやディレクトリについては、集計対象となりません。システム全体をチェックしたい場合は、「root」ユーザーで実行しましょう。


duコマンドの書式

du [オプション] [ファイルまたはディレクトリ]

※[ ]は省略可能な引数を示しています




duコマンドの主なオプション

 duコマンドの主なオプションは次の通りです。

●集計関係
短いオプション 長いオプション 意味
-S --separate-dirs サブディレクトリのサイズを含めない
-s --summarize 指定したディレクトリの合計のみを表示する(サブディレクトリの行が表示されなくなる)
-d深さ --max-depth=深さ 集計するディレクトリの深さを指定する(「--max-depth=0」は「--summarize(-s)」に相当)
-P --no-dereference シンボリックリンクをたどらない(デフォルト)
-L --dereference 全てのシンボリックリンクをたどる
-D,-H --dereference-args コマンドラインで指定されたシンボリックのみをたどる
-x --one-file-system 異なるファイルシステム(パーティション)にあるディレクトリをスキップする
-l --count-links ハードリンクがある場合は、その個数分のサイズを数える
--exclude=パターン パターに一致するファイルを含めない
-Xファイル --exclude-from=ファイル ファイルに含まれるパターンに一致するファイルを含めない
--files0-from=ファイル ファイルに指定されたリスト(NUL区切り)を対象に集計する。「-」を指定した場合は標準入力から読み込む

●表示関係
短いオプション 長いオプション 意味
-h --human-readable サイズに応じて読みやすい単位で表示する
-H --si 読みやすい単位で表示する。ただし、1024単位ではなく1000単位の値を使用する
-Bサイズ --block-size=サイズ 指定したサイズの倍数で表示する。サイズは数値または単位で指定する
-k --block-size=1Kと同じ
-m --block-size=1Mと同じ
--apparent-size ディスク使用量ではなく実際のサイズを表示する
-b --bytes 実際のサイズをバイト単位で表示(「--apparent-size」「--block-size=1」に相当)
-c --total 全体の合計も表示する
-0 --null 改行ではなく、NULで区切って出力する
--time 集計対象ごとに、集計対象となったファイルの最終更新時間を表示する
--time=表示 表示に「atime」「access」「use」「ctime」「status」を指定して、「--time」で更新時間の代わりに表示で指定した時間を表示する
--time-style=スタイル 時間の表示スタイルとして「full-iso」「long-iso」「iso」「+FORMAT」を指定する。「+FORMAT」はdateコマンドのフォーマット指定と共通


ディレクトリごとのディスク使用量を表示する

 「du」で、カレントディレクトリにある全てのディレクトリの使用量が表示されます。サブディレクトリがある場合は、それぞれのディレクトリのサイズが表示されます。

 表示する単位を変更したい場合は、「-h」や「-B」オプションを使用します。指定方法は、「df」コマンドと共通です(本連載第58回を参照)。

コマンド実行例

du

(カレントディレクトリ下のディスク使用量をディレクトリごとに集計して表示する)(画面1


画面1 画面1 カレントディレクトリ下のディスク使用量をディレクトリごとに集計して表示した(表示内容が多いので「more」コマンドを使用)


ディスク使用量の合計だけを表示する

 指定したディレクトリの合計容量だけを表示したい場合は、「-s」オプションを使用します。

 「du -s」で、カレントディレクトリが使用している容量が表示されます。「du -s *」では、カレントディレクトリ直下のファイルおよびディレクトリごとの集計となります。ただし、「*」を指定すると、ドットファイルは集計対象外となる点に注意してください。

 「-c」(--total)オプションでは、表示したディスク容量の合計も表示されます。

コマンド実行例

du -s

(カレントディレクトリのディスク使用量を表示する)(画面2の赤枠部分

du -s -c *

(カレントディレクトリ直下のファイルおよびディレクトリのディスク使用量と、その合計を表示する)(画面2の青枠部分


画面2 画面2 カレントディレクトリのディスク使用量と(赤枠部分)、カレントディレクトリ直下のディレクトリごとのディスク使用量を表示した(青枠部分)。ドットファイルが含まれていないため合計が「du -s」とは異なる


集計するディレクトリの深さを指定する

 「-d」オプションで、集計する“深さ”を指定できます。「-d1」で、1つ目の階層まで集計できます。「-s」は「-d0」相当になります。

 ルートディレクトリ下にあるディレクトリごとを集計する場合は、「du -d1 /」のように指定します。

 以下の実行例では、「/proc」のような特殊なフォルダを対象外とするために「-x」オプションを使用しています。「-x」は、“1つのファイルシステムだけを集計対象にする”というオプションです。集計には各ディレクトリへのアクセス権が必要になるので、「root」ユーザーで実行しています。

コマンド実行例

du -d1 -x /

(ルートディレクトリおよびルート直下のディレクトリのディスクの使用量を表示する。他のパーティションにあるファイルは対象にしない)(画面3


画面3 画面3 ルートおよびルートディレクトリ直下にあるディレクトリのディスク使用量を表示した


ディスクの使用量が多い順に並べる

 ディスクの使用量が多い順に並べて表示したい場合は、dfの実行結果を「sort」で並べ替えます。以下の実行例では、数値扱いで並べ替えるために「-n」オプション、大きい順(降順)にするために「-r」オプションを使用しています。

コマンド実行例

du -d1 -x / | sort -n -r

(ルートディレクトリおよびルート直下のディレクトリのディスクの使用量を大きい順に表示する。他のパーティションにあるファイルは対象にしない(画面4


画面4 画面4 「sort」を使って実行結果を並べ替え、ディスク使用量が大きい順に表示した


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。