du - ファイルやディレクトリのサイズを表示

du

duコマンドは、ファイルやディレクトリのサイズを確認することができます。
ディスク容量をあける場合に大きいファイルサイズを持つファイルやディレクトリを探すのに便利です。

duコマンドとは

duコマンドは、ファイルやディレクトリのサイズを確認する事ができます。
ディレクトリを指定した場合は、デフォルトではサブディレクトリのサイズも表示します。
sortコマンドを用いるとそれぞれのファイルやディレクトリのサイズをソートすることができ、とても見やすくなります。
sortコマンドを用いる場合は、数値だけの場合はsort -nを、duコマンドの-hオプション等でSI単位系表示にしている場合はsort -hを用いると良いです。

duコマンドの構文

duコマンドの構文

ファイルが指定されていない場合は、カレントディレクトリが指定されます。

duコマンドの利用例

ファイルやディレクトリのサイズを表示
(オプションなし)

duコマンドは、指定したファイルやディレクトリのサイズを表示します。
もし、何も指定しなければ、カレントディレクトリを指定したことになります。
ディレクトリを指定した場合、ディレクトリの中でサブディレクトリのサイズも表示します。
duコマンドが表示するサイズは、通常、ブロックサイズ単位であり、1024バイト単位の表示になります。例えば、4と表示される場合は4096バイトが報告されていると考えます。

コマンド例

実行結果

全てのファイルとディレクトリを表示
(-aオプション)

-aオプションは、ディレクトリを指定した場合、そのディレクトリとサブディレクトリ内のすべてのファイルと全てのディレクトリのサイズを表示します。

コマンド例

実行結果

実際のサイズを表示
(--apparent-sizeオプション)

--apparent-sizeオプションは、実際のサイズを表示します。
duコマンドがオプションなしで表示している情報は、実際にそのファイルやディレクトリに対してディスクが使用しているサイズです。ファイルシステムにファイルやディレクトリの保存をすると、そのファイルシステムが用いるブロックサイズの単位で消費されていきます。なので、実際にはduコマンドはオプションがない状態で用いるとそのファイルシステムが用いるブロックサイズの単位で表示されているように見えます(私の環境のファイルシステムのブロックサイズは4096バイトなので、小さいファイルは4という単位で表示されているように見えます)。
--apparent-sizeオプションを用いると実際のサイズを表示するようになりますが、duコマンドに設定されているブロックサイズがデフォルトでは、1024バイトの単位なので、このオプションだけを使用すると1024バイト単位に丸められた数値が表示されます。
もっと正確なファイルやディレクトリのサイズを確認したい場合は-bオプションを用います。

コマンド例

実行結果

実際のサイズをバイト単位で表示
(-bオプション)

-bオプションを用いると--apparent-sizeオプションと--block-size=1(または-B1)オプションを指定したのと同じ結果を得ることができます。
-bオプションは、ファイルやディレクトリの実際のサイズをバイト単位で表示します。

コマンド例

実行結果

サイズの合計を表示
(-cオプション)

-cオプションは、duコマンドで指定したファイルやディレクトリのサイズ合計を最後の行に追加します。

コマンド例

実行結果

サブディレクトリのサイズを除外
(-Sオプション)

duコマンドが表示するディレクトリのサイズは、サブディレクトリのサイズを入れたサイズになります。
-Sオプションを用いるとサブディレクトリのサイズは除外して数値を表示します。

コマンド例

実行結果

オプションがない場合は以下のようになります。
コマンド例

実行結果

コマンドライン引数のシンボリックリンクファイルのリンク先を参照
(-Dオプションまたは-Hオプション)

-Dオプションは、コマンドライン引数にあるシンボリックリンクファイルでのリンク先のサイズを表示することができます。
また、-Hオプションも-Dオプションと同様のオプションです。
コマンド例

実行結果

シンボリックリンクファイルを-Dオプションなしで確認する場合は以下のようになります。
コマンド例

実行結果

シンボリックリンクファイルのリンク先を参照
(-Lオプション)

-Lオプションは、シンボリックリンクファイルのリンク先を参照することがします。
-Dオプションと違い、コマンドライン引数になくてもシンボリックリンクファイルのリンク先を参照します。

コマンド例

実行結果

ディレクトリの深さを制限
(-dオプションまたは-sオプション)

duコマンドは、自動的にサブディレクトリ以下のサイズも表示します。
-dオプションはディレクトリの深さを制限することができます。
また、-d0は-sオプションと同等になります。

コマンド例

実行結果

オプションなしの場合は以下の表示されます。
コマンド例

実行結果

コマンドライン引数ではなくファイルから入力
(--files0-fromオプション)

--files0-fromオプションは、コマンドライン引数ではなく、指定したファイルからduコマンドの入力とすることができます。ただし、各ファイルの終端はNUL文字で終了しなければなりません。
コマンド例

duinput.txtの内容(od -xaで確認)

実行結果

1024のべき乗で単位表示
(-hオプション)

-hオプションは、数値を人の読みやすい形式、SI単位系表示に変換します。
人の読みやすい形式した数値は、KやM,G等の文字がつけられ、その重みは1024のべき乗になります。

コマンド例

実行結果

1000のべき乗で単位表示
(--siオプション)

--siオプションも、数値を人間の読みやすい形式、SI単位系表示に変換します。
ただし、-hオプションと違い、単位の重みは1000のべき乗で表されます。

コマンド例

実行結果

ファイルを多く含むディレクトリを確認
(--inodeオプション)

--inodeオプションは、サイズの代わりにinode使用数を表示します。
このオプションは、ファイルを多く含むディレクトリを確認するのに便利です。

コマンド例

実行結果

表示するブロックサイズの変更
(-Bオプション)

-Bオプションは、duコマンドで表示されているサイズの単位を変更することができます。
例えば、ブロックサイズが1MBの場合、それぞれのファイルやディレクトリで表示される数値は1MB単位の表示になります。

コマンド例

実行結果

表示するブロックサイズを1KBに変更
(-kオプション)

-kオプションは、ブロックサイズを1KBに変更します。
-kオプションは、-B1Kと同等の機能になります。

表示するブロックサイズを1MBに変更
(-mオプション)

-mオプションは、ブロックサイズを1MBに変更します。
-mオプションは、-B1Mと同等の機能になります。

参考

外部リンクGnu Coreutils

外部リンクGnu Coreutils日本語版