MacやWinでフォルダの容量を表示するのは、GUI-OSの場合、右クリックをして、winは「プロパティ」、macは「情報を見る」を選択すれば、対象フォルダに入っているデータの総容量を計算して表示してくれます。
WEBサービス管理をしている時に、サーバー管理者が、「このフォルダの容量をチェックしたい」とか「このフォルダ内のリストの容量を一括で見たい」という場面ありませんか?
そんな時に、便利なコマンドを紹介するので、コピペではなく、素で打ち込めるように覚えておきましょう。
GUIでのフォルダ容量確認
Macでの画面イメージですが、右クリックするだけで、こうした情報が得られるのは、GUIの大きな特徴ですが、当たり前すぎて、CUIでこうした情報をすぐに取得出来ない時はどうにももどかしいです。
任意フォルダ内のリストに容量を表示させる
普通にカレントディレクトリのリストを表示するのは、下記のようにlsコマンドを使います。
$ ls -lha /var/www/html/
drwxr-xr-x 5 root root 170 10月 31 14:20 hage
drwxr-xr-x 4 root root 136 10月 31 14:21 hoge
drwxr-xr-x 5 root root 170 10月 31 14:21 huge
容量を表示する場合は、duコマンドです。
$ du /var/www/html/
48 /var/www/html/hage/index.html
48 /var/www/html/hage
128 /var/www/html/hoge/index.html
128 /var/www/html/hoge
0 /var/www/html/huge
このままでは、カレントフォルダの階層内にある全てのファイルとフォルダが表示されてしまい、大容量になってしまうので、1階層だけに絞ります。
$ du /var/www/html/ --max-depth=1
48 /var/www/html/hage
128 /var/www/html/hoge
0 /var/www/html/huge
ちなみに、--max-depth=***の値を変えれば、階層数を切り替えられます。
でも、個人的には、1階層以外はあまり使わないですね。
そして、duのオプションを使うと、容量がK(キロ)、M(メガ)、T(テラ)という表記に変わって、見やすくなります、ただし、この後行うサイズでソートをする場合はデフォルトのB(バイト)でやる必要があります。
$ du /var/www/html/ --max-depth=1 -h
-hオプションを使った場合、バイト表示は単位は付与されません。
容量順にソート
次に、表示されたリストを容量の小さい順にしたい場合は、次のように打ち込みます。
$ du /var/www/html/ --max-depth=1 | sort -n
0 /var/www/html/huge
48 /var/www/html/hage
128 /var/www/html/hoge
解説すると、sortコマンドで表示されている1カラム目を数値判断した昇順にしています。
ちなみに、降順にしたい場合は以下のコマンド
$ du /var/www/html/ --max-depth=1 | sort -nr
128 /var/www/html/hoge
48 /var/www/html/hage
0 /var/www/html/huge
-r オプション(reverse)を追加するだけです。
どんな時に使うの?
1. サーバーメンテナンスを行う際に、容量の膨らんでいるフォルダやファイルが無いか確認する場合
2. ディスク容量が圧迫されている時に、削除すべきフォルダやデータを見つける場合
改めてGUIは、こうした容量確認なども、簡単にできるように設計されているが、CUIは自らこうしたコマンドを覚えていないと、非常に面倒くさいという事がよく分かります。
でも、個人的には、CUIを駆使したほうが、よりスピードが早くなったり、無意味にハングアップする事も無いので(仮にハングアップしても、キャンセルすることで回避できたり・・・)エンジニアであれば、こちらに慣れていたほうが得することが多いと思いますよ。
関連リンク
[Server] フォルダ一覧の内包されているファイル数を表示する方法
0 件のコメント:
コメントを投稿