Du (Unix)

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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。