ラズベリーパイを使用していて、自分が作成したディレクトリにどれくらいのサイズのファイルがあるかを知りたいことがあります。
このようなときは、duコマンドを使用します。
duコマンドの基本について書きます。
duコマンドの基本
duコマンドは、主にディレクトリ内のファイルのサイズを調べて表示するコマンドです。
正確にはディスクを実際に使用している量を表示するのですが、以下単にサイズと書きます。
1 2 | $ du test1 6148 test1 |
duコマンドを実行したときの結果の例です。単位は、デフォルトでKBです。
このtest1というディレクトリには、1MB(=1048576Byte)のaaa.log, 2MBのbbb.log, 3MBのccc.logという3つのファイルが格納されています。合計6MB(=6291456Byte)です。
スポンサーリンク6291456/1024=6144KBなので、少し数字にズレがありますが、これは上述のように、duコマンドが表示するのはディスクの実際の使用量であるためです。この差については話が細かくなりますので、ここでは触れません。
さて、このコマンドの便利なところは、サブディレクトリがあったときに、その中まで再帰的に調べて表示してくれることです。
1 2 3 | $ du test1 15364 test1/sub_test1 21512 test1 |
上記は、先に書いたのtest1というディレクトリの下にsub_test1というディレクトリを作り、そこに4MBのddd.log, 5MBのeee.log, 6MBのfff.logという3つのファイルが格納した状態でduコマンドを実行したときの結果です。
test1/sub_test1の下のファイルの総サイズとtest1下のファイルの総サイズを表示します。合計約21MBという表示になります。
duコマンドのオプション
duコマンドのオプションもたくさんありますが、よく使用するオプションを以下にあげます。
-a: すべてのファイルのサイズを表示
duコマンドは、ディレクトリ単位でそのサイズを表示しますが、-aをつけるとディレクトリ下のファイルのサイズを個別に表示します。
1 2 3 4 5 6 7 8 9 | $ du -a test1 1024 test1/aaa.log 3072 test1/ccc.log 5120 test1/sub_test1/eee.log 6144 test1/sub_test1/fff.log 4096 test1/sub_test1/ddd.log 15364 test1/sub_test1 2048 test1/bbb.log 21512 test1 |
行がバラバラになっていますが、test1/sub_test1/を含む行がサブディレクトリsub_test1の情報です。eee.log, fff.log, ddd.log の3つのファイルがあることがわかります。
左側に表示されている数字(KB)が、先ほど説明した各ファイルのサイズになっていますね。
test1/sub_test1 の行がこのサブディレクトリの総サイズ(KB)の情報を表示しています。
test1/を含む行についても同様です。
最後のtest1の行が、このtest1というディレクトリの総サイズ(KB)です。約21KBということになります。
-b: サイズの単位をByteで表示する
duコマンドを実行したときのサイズ表示はKB単位ですが、このオプションをつけるとByte単位で表示します。
1 2 3 4 5 6 7 8 9 | $ du -ab test1 1048576 test1/aaa.log 3145728 test1/ccc.log 5242880 test1/sub_test1/eee.log 6291456 test1/sub_test1/fff.log 4194304 test1/sub_test1/ddd.log 15732736 test1/sub_test1 2097152 test1/bbb.log 22028288 test1 |
-abと書くと、-aオプションと-bオプションを同時に設定したことになります。
-h: サイズの単位を文字で表示する
この-hオプションは、以下の記事:
で書いたdfコマンドの-hオプションと同じです。
サイズの単位を文字で表示して、読みやすくしてくれます。
1 2 3 4 5 6 7 8 9 | $ du -ah test1 1.0M test1/aaa.log 3.0M test1/ccc.log 5.0M test1/sub_test1/eee.log 6.0M test1/sub_test1/fff.log 4.0M test1/sub_test1/ddd.log 16M test1/sub_test1 2.0M test1/bbb.log 22M test1 |
-s: ディレクトリの総サイズのみを表示する
-sオプションは、指定したディレクトリの総サイズのみをシンプルに表示します。
1 2 | $ du -s test1 21512 test1 |