duコマンド:ディスク使用量を把握する
duコマンドは、
Unix系オペレーティングシステムでファイルや
ディレクトリが使用しているディスクスペースの見積もりを表示する標準的なコマンドラインユーティリティです。
ファイルシステムにおけるストレージ使用状況を把握する上で非常に重要なツールです。
歴史
duユーティリティは、AT&T
UNIXのバージョン1で最初に登場しました。GNU coreutilsにバンドルされているduコマンドは、Torbjorn Granlund、David MacKenzie、Paul Eggert、Jim Meyeringによって開発されました。
仕様
Single
UNIX Specification (SUS) では、duコマンドはデフォルトで、現在の
ディレクトリに含まれる各ファイルおよび
ディレクトリに割り当てられたファイルスペースを表示することが定められています。シンボリックリンクは、リンク先ではなくリンクファイル自体のサイズを表示します。
ディレクトリのサイズは、その内容のサイズを合計したものが表示されます。
duコマンドが表示するのは、割り当てられたスペースであり、ファイルの絶対的なサイズではありません。そのため、ファイルが削除されてもブロックが解放されていない場合、duコマンドが表示する合計サイズは、dfコマンドが表示するサイズとは異なる場合があります。また、
ファイルシステムには、最小限(minfree)の設定と、スーパーユーザープロセスによってデータブロックの割り当てが制御されており、合計ブロック数と使用済みおよび利用可能なブロックの合計値の間には不一致が生じる場合があります。通常、最小限の設定は
ファイルシステムサイズの約5%に設定されています。
使用方法
duコマンドは、引数としてパス名を1つ指定できます。パス名を指定しない場合、現在の
ディレクトリが対象になります。SUSでは、duコマンドは次のオプションをサポートすることが規定されています。
-a: デフォルトの出力に加えて、
ディレクトリ以外のファイルの情報も表示します。
-c: 他の引数で指定されたディスク使用量の合計を表示します。
-d #: 集計する
ディレクトリの深さを指定します。`-d 0` は現在のレベルのみ、`-d 1` はサブ
ディレクトリ、`-d 2` はサブサブ
ディレクトリを集計します。
-H: コマンドラインで指定されたシンボリックリンクの参照先のディスク使用量を計算します。
-k: サイズを512バイト単位ではなく、1024バイト単位で表示します。
-L: シンボリックリンクの参照先をたどり、ディスク使用量を計算します。
-s: 現在の
ディレクトリの合計サイズのみを表示し、
ディレクトリ内の詳細な情報は表示しません。
-x: 指定されたデバイス上のファイルと
ディレクトリのみを対象にします。
Unix系OSによっては、上記の他にも追加のオプションが利用できる場合があります。例えば、BSD系やGNUのduコマンドでは、`-h` オプションを指定することで、人間が読みやすい形式(例えば、10MB)でディスク使用量を表示できます。
例
ディレクトリの合計サイズを
キロバイト単位で表示 (-s -k):
bash
du -sk
ディレクトリの合計サイズを人間が読みやすい形式で表示 (-s -h):
bash
du -sh
現在の
ディレクトリ以下の全てのサブ
ディレクトリとファイルのディスク使用量をファイルサイズでソートして表示 (隠しファイルを含む):
bash
du -a | sort -n
現在の
ディレクトリ以下の全てのサブ
ディレクトリとファイルのディスク使用量をファイルサイズの逆順でソートして表示 (隠しファイルを含む):
bash
du -a | sort -nr
現在の
ディレクトリ直下の各サブ
ディレクトリのサイズを表示し、最後に合計サイズを表示する (-d 1 -c -h):
bash
du -d 1 -ch
GNU duコマンドでは以下のようにも記述可能です。
bash
du -hc --max-depth=1
ルート
ディレクトリ直下の各サブ
ディレクトリのサイズを表示し、最後に合計サイズを表示する (-d 1 -c -h /)。他の
ファイルシステムは対象外とする (-x)。`/var`、`/tmp`などの
ディレクトリがルート
ディレクトリとは別のストレージにある場合に有用です。
bash
du -d 1 -chx /
GNU duコマンドでは以下のようにも記述可能です。
bash
du -hc
max-depth=1 one-file-system /
関連項目
UNIXユーティリティの一覧
Filelight
ディスク使用量アナライザー
ncdu
参考文献
du: estimate file space usage – The Open Group Base Specifications Issue 7, 2018 edition
マニュアルページ
du(1) – Linux User Commands Manual
du(1) – OpenBSD General Commands Manual
du(1) – FreeBSD General Commands Manual Pages
*
du(1) – NetBSD General Commands Manual