duコマンドはディレクトリの使用サイズを調べます。単位を変える、配下のディレクトリごとのサイズを表示する、総量を表示する、などできます。
ディレクトリ・ファイルのリストとそれぞれのサイズや合計サイズを表示するので見やすく、使い方もかんたん。今回はよく使うものをご紹介します。
du [option] [dir_name]
option | オプション。 省略可。 |
dir_name | サイズを出すディレクトリ名。 省略するとカレントディレクトリ。 |
サイズの単位を指定
duコマンドはオプションを指定しないとサイズの単位はKbyteです。見づらくてしょうがありません。
これを見やすくするオプションが用意されています。
オプション | |
---|---|
-h | 人間の見やすい単位に自動調整。 (K, M, G) |
-m | Mbyte |
-k | Kbyte 単位オプションなしと同じ。 |
-b | byte |
du -h
72M ./aaa
64K ./bbb
2.7M ./ccc
4.0K ./ddd
75M .
これが一番いいです。単位が表示されるので見やすい。ほかのオプションは単位が表示されません。
du -m
72 ./aaa
1 ./bbb
3 ./ccc
1 ./ddd
75 .
特定の単位を指定すると四捨五入で整数値になります。大まかに見る分にはいいですが、細かく見るのには向いていない。
(64Kと1Mではぜんぜんちがう。)
du -k
73456 ./aaa
64 ./bbb
2752 ./ccc
4 ./ddd
76276 .
du -b
73145582 ./aaa
55340 ./bbb
2809922 ./ccc
3358 ./ddd
76014254 .
総量(合計)を表示
総量や合計サイズを表示するオプションです。
オプション | |
---|---|
-c | 合計を表示 |
-s | 合計だけ表示 |
du -c
73460 ./aaa
64 ./bbb
2752 ./ccc
4 ./ddd
76280 .
76280 合計
もともとカレントディレクトリは "." に、パラメータでディレクトリを指定したらそのサイズが出るので、慣れると使いません。
du -c log
73460 log/aaa
64 log/bbb
2752 log/ccc
4 log/ddd
76280 log
76280 合計
とりあえずディレクトリの総量だけを知りたければ、"-s" オプションで十分です。
du -s
76280 .
du -s log
76280 log
ディレクトリの階層を指定
ディレクトリ階層が多いとき、ディレクトリが大量に表示されてうっとうしいです。そういうときはディレクトリの階層を指定できます。"-d" オプションを使います。
du
16 ./aaa
20 ./bbb/ccc
72 ./bbb
272 .
du -d1
16 ./aaa
72 ./bbb
272 .
オプションの後ろに整数を入れますが、半角スペースで空けてもOK。
du -d 1
16 ./aaa
72 ./bbb
272 .
個人開発ではあまりしませんが、企業開発の見積もりでソースボリュームを見るときなどに使えます。
特定のディレクトリやファイルを除外
特定のディレクトリやファイルを除外してサイズ計算もできます。
アスタリスク(*)を使ってパターン指定も可。
du
16 ./aaa
20 ./bbb/ccc
72 ./bbb
272 .
du --exclude=*.php --exclude=*.py --exclude=aaa
0 ./bbb/ccc
4 ./bbb
8 .
PHPファイル、Pythonファイルとaaaディレクトリを除外しました。
--excludeはひとつのパターンしか指定できません。複数指定するときは、--exlucdeを複数個指定します。
またハイフン(-)が2個あるオプションは一番最後に指定します。
ファイルサイズも調べる
ディレクトリだけでなくファイルのサイズも調べられます。"-a" オプションを使います。
shortcode]$ du
20 ./lll
72 .
du -a
4 ./aaa.php
4 ./bbb.php
4 ./hhh.php
4 ./iii1.php
8 ./iii2.php
4 ./iii3.php
4 ./iii4.php
4 ./iii5.php
4 ./iii6.php
20 ./lll/bbb.php
20 ./lll
4 ./ppp1.php
4 ./ppp2.php
72 .
もちろんですが、オプションの複数指定もできます。
サンプルはあるwebアプリのプロジェクトからcssとjsファイルのサイズを表示します。
du -ah --exclude=*.php --exclude=sass --exclude=images --exclude=.style* --exclude=template-parts --exclude=classes --exclude=inc --exclude=*.json --exclude=*.png --exclude=postcss.config.js --exclude=readme.txt
4.0K ./assets/css/custom-color-overrides.css
80K ./assets/css/ie-editor.css
164K ./assets/css/ie.css
4.0K ./assets/css/print.css
4.0K ./assets/css/style-dark-mode-rtl.css
4.0K ./assets/css/style-dark-mode.css
4.0K ./assets/css/style-editor-customizer.css
80K ./assets/css/style-editor.css
348K ./assets/css
4.0K ./assets/js/customize-helpers.js
4.0K ./assets/js/customize-preview.js
4.0K ./assets/js/customize.js
4.0K ./assets/js/dark-mode-toggler.js
4.0K ./assets/js/editor-dark-mode-support.js
4.0K ./assets/js/editor.js
4.0K ./assets/js/palette-colorpicker.js
4.0K ./assets/js/polyfills.js
8.0K ./assets/js/primary-navigation.js
4.0K ./assets/js/responsive-embeds.js
4.0K ./assets/js/skip-link-focus-fix.js
52K ./assets/js
400K ./assets
156K ./style-rtl.css
156K ./style.css
716K .
今回はよく使うものだけを紹介しました。duコマンドの詳細はmanコマンドで確認してください。
man du