TL;DR
sudo
を付けて実行しよう
du
コマンドとは
簡単に言うと,ディレクトリ,ファイルの容量を調べるコマンドです。
この記事はdu
の使い方の説明文ではないので,このコマンド自体の説明の詳細は記載しません。
Linuxでのdu
コマンド
Linuxではdu
に--max-depth
というオプションが使えます。
$ du -ah --max-depth=1
普通にdu
だけで実行すると,ディレクトリ下のファイルやディレクトリ下のディレクトリ下のファイルまでをズラーっと全て出力してしまいます。
ですが,これを使う事でディレクトリの何階層までをまとめて計算して表示するかを指定出来ます。
macOSでのdu
コマンド
macOSでもこのdu
コマンドを使用してみましょう。
$ du
......
......
4.0K ./Program/Carbonara/README.md
50M ./Program/Carbonara/src/img
4.0K ./Program/Carbonara/src/md/check.md
4.0K ./Program/Carbonara/src/md/restaurant.md
12K ./Program/Carbonara/src/md
50M ./Program/Carbonara/src
100M ./Program/Carbonara
......
......
60G .
カレントディレクトリ下のファイルの全ての容量を表示しちゃうので表示が長くって端折って記述していますが…… 使えています。
$ du -ah
......
......
4.0K ./Program/Carbonara/README.md
50M ./Program/Carbonara/src/img
4.0K ./Program/Carbonara/src/md/check.md
4.0K ./Program/Carbonara/src/md/restaurant.md
12K ./Program/Carbonara/src/md
50M ./Program/Carbonara/src
100M ./Program/Carbonara
......
......
60G .
オプションもキチンと使えています。
(結果を端折っていることもあって結果が上と変わってはいないけれど,動作はしています)。
--max-depth
(-d
)を使用する
$ du -ah --max-depth=1
du: illegal option -- -
usage: du [-H | -L | -P] [-a | -s | -d depth] [-c] [-h | -k | -m | -g] [-x] [-I mask] [file ...]
macOSではどうも--
を使うオプションはないみたい。
調べてみると,macOSではこれを-d
オプションで扱うということはわかりましたが……。
$ du -d 1
usage: du [-H | -L | -P] [-a | -s | -d depth] [-c] [-h | -k | -m | -g] [-x] [-I mask] [file ...]
使えません……😞。
エラー内容も特には出ていないけれど,これだとオプションの指定を間違えてる?かに見えます🙄。
解決
sudo
を付けることで問題なく実行出来た。
$ sudo du -d 1
0 ./Applications
16 ./Desktop
16 ./Documents
432 ./dotfile
38240568 ./Downloads
2701904 ./Dropbox
18004472 ./Library
0 ./Movies
54744 ./Music
161560 ./Pictures
3137080 ./Program
0 ./Public
61492040 ./VirtualBox VMs
125959448 .
$ sudo du -d 1 -h
0B ./Applications
8.0K ./Desktop
8.0K ./Documents
216K ./dotfile
18G ./Downloads
1.3G ./Dropbox
8.6G ./Library
0B ./Movies
27M ./Music
79M ./Pictures
1.5G ./Program
0B ./Public
29G ./VirtualBox VMs
60G .
(こっちもちょいと端折ってます。)
Permissionエラーとかの表示がないので戸惑いましたが,ふとsudo
を付けて実行してみたらキチンと出力出来ました🎉。
普通のdu
コマンドは動作していたので,管理者権限でないと覗けないファイルを見たりはしていないと思うのだけれど……。
-d
オプションを使用する場合は注意が必要そうです。