duコマンドは、ファイルやディレクトリのサイズを確認することができます。
ディスク容量をあける場合に大きいファイルサイズを持つファイルやディレクトリを探すのに便利です。
目次
- 1 duコマンドとは
- 2 duコマンドの構文
- 3 duコマンドの利用例
- 3.1 ファイルやディレクトリのサイズを表示 (オプションなし)
- 3.2 全てのファイルとディレクトリを表示 (-aオプション)
- 3.3 実際のサイズを表示 (--apparent-sizeオプション)
- 3.4 実際のサイズをバイト単位で表示 (-bオプション)
- 3.5 サイズの合計を表示 (-cオプション)
- 3.6 サブディレクトリのサイズを除外 (-Sオプション)
- 3.7 コマンドライン引数のシンボリックリンクファイルのリンク先を参照 (-Dオプションまたは-Hオプション)
- 3.8 シンボリックリンクファイルのリンク先を参照 (-Lオプション)
- 3.9 ディレクトリの深さを制限 (-dオプションまたは-sオプション)
- 3.10 コマンドライン引数ではなくファイルから入力 (--files0-fromオプション)
- 3.11 1024のべき乗で単位表示 (-hオプション)
- 3.12 1000のべき乗で単位表示 (--siオプション)
- 3.13 ファイルを多く含むディレクトリを確認 (--inodeオプション)
- 3.14 表示するブロックサイズの変更 (-Bオプション)
- 3.15 表示するブロックサイズを1KBに変更 (-kオプション)
- 3.16 表示するブロックサイズを1MBに変更 (-mオプション)
- 4 参考
duコマンドとは
duコマンドは、ファイルやディレクトリのサイズを確認する事ができます。
ディレクトリを指定した場合は、デフォルトではサブディレクトリのサイズも表示します。
sortコマンドを用いるとそれぞれのファイルやディレクトリのサイズをソートすることができ、とても見やすくなります。
sortコマンドを用いる場合は、数値だけの場合はsort -nを、duコマンドの-hオプション等でSI単位系表示にしている場合はsort -hを用いると良いです。
duコマンドの構文
duコマンドの構文
1 |
du [option]... [file]... |
ファイルが指定されていない場合は、カレントディレクトリが指定されます。
duコマンドの利用例
ファイルやディレクトリのサイズを表示
(オプションなし)
duコマンドは、指定したファイルやディレクトリのサイズを表示します。
もし、何も指定しなければ、カレントディレクトリを指定したことになります。
ディレクトリを指定した場合、ディレクトリの中でサブディレクトリのサイズも表示します。
duコマンドが表示するサイズは、通常、ブロックサイズ単位であり、1024バイト単位の表示になります。例えば、4と表示される場合は4096バイトが報告されていると考えます。
コマンド例
1 |
du |
実行結果
1 2 |
8 ./testdir 1048608 . |
全てのファイルとディレクトリを表示
(-aオプション)
-aオプションは、ディレクトリを指定した場合、そのディレクトリとサブディレクトリ内のすべてのファイルと全てのディレクトリのサイズを表示します。
コマンド例
1 |
du -a . |
実行結果
1 2 3 4 5 6 7 8 |
4 ./file2.txt 4 ./output.txt 1048580 ./data.dat 4 ./file.txt 4 ./progress.txt 4 ./testdir/file.txt 8 ./testdir 1048608 . |
実際のサイズを表示
(--apparent-sizeオプション)
--apparent-sizeオプションは、実際のサイズを表示します。
duコマンドがオプションなしで表示している情報は、実際にそのファイルやディレクトリに対してディスクが使用しているサイズです。ファイルシステムにファイルやディレクトリの保存をすると、そのファイルシステムが用いるブロックサイズの単位で消費されていきます。なので、実際にはduコマンドはオプションがない状態で用いるとそのファイルシステムが用いるブロックサイズの単位で表示されているように見えます(私の環境のファイルシステムのブロックサイズは4096バイトなので、小さいファイルは4という単位で表示されているように見えます)。
--apparent-sizeオプションを用いると実際のサイズを表示するようになりますが、duコマンドに設定されているブロックサイズがデフォルトでは、1024バイトの単位なので、このオプションだけを使用すると1024バイト単位に丸められた数値が表示されます。
もっと正確なファイルやディレクトリのサイズを確認したい場合は-bオプションを用います。
コマンド例
1 |
du -a --apparent-size |
実行結果
1 2 3 4 5 6 7 8 |
1 ./file2.txt 1 ./output.txt 1048576 ./data.dat 1 ./file.txt 1 ./progress.txt 1 ./testdir/file.txt 5 ./testdir 1048585 . |
実際のサイズをバイト単位で表示
(-bオプション)
-bオプションを用いると--apparent-sizeオプションと--block-size=1(または-B1)オプションを指定したのと同じ結果を得ることができます。
-bオプションは、ファイルやディレクトリの実際のサイズをバイト単位で表示します。
コマンド例
1 |
du -a -b |
実行結果
1 2 3 4 5 6 7 8 |
44 ./file2.txt 17 ./output.txt 1073741824 ./data.dat 17 ./file.txt 414 ./progress.txt 10 ./testdir/file.txt 4106 ./testdir 1073750518 . |
サイズの合計を表示
(-cオプション)
-cオプションは、duコマンドで指定したファイルやディレクトリのサイズ合計を最後の行に追加します。
コマンド例
1 |
du -c -b file2.txt file.txt |
実行結果
1 2 3 |
44 file2.txt 17 file.txt 61 合計 |
サブディレクトリのサイズを除外
(-Sオプション)
duコマンドが表示するディレクトリのサイズは、サブディレクトリのサイズを入れたサイズになります。
-Sオプションを用いるとサブディレクトリのサイズは除外して数値を表示します。
コマンド例
1 |
du -S |
実行結果
1 2 |
8 ./testdir 1048604 . |
コマンド例
1 |
du |
実行結果
1 2 |
8 ./testdir 1048612 . |
コマンドライン引数のシンボリックリンクファイルのリンク先を参照
(-Dオプションまたは-Hオプション)
-Dオプションは、コマンドライン引数にあるシンボリックリンクファイルでのリンク先のサイズを表示することができます。
また、-Hオプションも-Dオプションと同様のオプションです。
コマンド例
1 |
du -b -D data_sym.dat |
実行結果
1 |
1073741824 data_sym.dat |
コマンド例
1 |
du -b data_sym.dat |
実行結果
1 |
29 data_sym.dat |
シンボリックリンクファイルのリンク先を参照
(-Lオプション)
-Lオプションは、シンボリックリンクファイルのリンク先を参照することがします。
-Dオプションと違い、コマンドライン引数になくてもシンボリックリンクファイルのリンク先を参照します。
コマンド例
1 |
du -L -a |
実行結果
1 2 3 4 5 6 7 8 9 10 11 |
4 ./file2.txt 4 ./output.txt 1048580 ./data.dat 4 ./duinput.txt 4 ./file.txt 0 ./test_df_dir_sym/testfile 4 ./test_df_dir_sym 4 ./progress.txt 4 ./testdir/file.txt 8 ./testdir 1048616 . |
ディレクトリの深さを制限
(-dオプションまたは-sオプション)
duコマンドは、自動的にサブディレクトリ以下のサイズも表示します。
-dオプションはディレクトリの深さを制限することができます。
また、-d0は-sオプションと同等になります。
コマンド例
1 |
du -d0 |
実行結果
1 |
1048608 . |
コマンド例
1 |
du |
実行結果
1 2 |
8 ./testdir 048608 . |
コマンドライン引数ではなくファイルから入力
(--files0-fromオプション)
コマンド例
1 |
du --files0-from=duinput.txt |
duinput.txtの内容(od -xaで確認)
1 2 3 4 5 |
0000000 d a t a . d a t nul f i l e . t x 6164 6174 642e 7461 6600 6c69 2e65 7874 0000020 t nul 0074 0000022 |
実行結果
1 2 |
1048580 data.dat 4 file.txt |
1024のべき乗で単位表示
(-hオプション)
-hオプションは、数値を人の読みやすい形式、SI単位系表示に変換します。
人の読みやすい形式した数値は、KやM,G等の文字がつけられ、その重みは1024のべき乗になります。
コマンド例
1 |
du -a -h |
実行結果
1 2 3 4 5 6 7 8 9 10 |
4.0K ./file2.txt 4.0K ./output.txt 1.1G ./data.dat 4.0K ./duinput.txt 4.0K ./file.txt 4.0K ./progress.txt 0 ./data_sym.dat 4.0K ./testdir/file.txt 8.0K ./testdir 1.1G . |
1000のべき乗で単位表示
(--siオプション)
--siオプションも、数値を人間の読みやすい形式、SI単位系表示に変換します。
ただし、-hオプションと違い、単位の重みは1000のべき乗で表されます。
コマンド例
1 |
du -a --si |
実行結果
1 2 3 4 5 6 7 8 9 10 |
4.1k ./file2.txt 4.1k ./output.txt 1.1G ./data.dat 4.1k ./duinput.txt 4.1k ./file.txt 4.1k ./progress.txt 0 ./data_sym.dat 4.1k ./testdir/file.txt 8.2k ./testdir 1.1G . |
ファイルを多く含むディレクトリを確認
(--inodeオプション)
--inodeオプションは、サイズの代わりにinode使用数を表示します。
このオプションは、ファイルを多く含むディレクトリを確認するのに便利です。
コマンド例
1 |
du --inode |
実行結果
1 2 |
2 ./testdir 10 . |
表示するブロックサイズの変更
(-Bオプション)
-Bオプションは、duコマンドで表示されているサイズの単位を変更することができます。
例えば、ブロックサイズが1MBの場合、それぞれのファイルやディレクトリで表示される数値は1MB単位の表示になります。
コマンド例
1 |
du -B1M -a |
実行結果
1 2 3 4 5 6 7 8 9 10 11 |
1 ./file2.txt 1 ./output.txt 1025 ./data.dat 1 ./duinput.txt 1 ./file.txt 0 ./test_df_dir_sym 1 ./progress.txt 0 ./data_sym.dat 1 ./testdir/file.txt 1 ./testdir 1025 . |
表示するブロックサイズを1KBに変更
(-kオプション)
-kオプションは、ブロックサイズを1KBに変更します。
-kオプションは、-B1Kと同等の機能になります。
表示するブロックサイズを1MBに変更
(-mオプション)
-mオプションは、ブロックサイズを1MBに変更します。
-mオプションは、-B1Mと同等の機能になります。
参考
外部リンクGnu Coreutils
外部リンクGnu Coreutils日本語版