【Mac】データサイズの大きい順にフォルダを並べる
Mac の SSD の容量が残り少なくなってきたとして、まず考えるのがサイズの大きいファイルの削除である。
ちまちまと大きなファイルを捜して、いちいち削除しても埒があかない。
デカいファイルがいっぱい入ったフォルダを、丸ごとざっくり削除しちまったほうが捗るだろう。
そういう目的のためのソフトウェアがけっこうある。
🔗 Macアプリ「DaisyDisk」ディスクの使用状況を階層構造に可視化・削除 | PC設定のカルマ
上記リンクでレビューされているアプリなどはおすすめだ。
今回は、標準機能だけでデカいサイズのフォルダを捜せないか試したい。
サイズの大きい順に並べ替える
いつの頃からか忘れたが、Mac の Finder は、ファイルをサイズ順にソートできるようになった。これなら、ドデカいフォルダを見つけられそうだ。
やり方は簡単で、ツールバーの並べ替えアイコンから「サイズ」を選択するだけだ。
リスト表示にして、「サイズ」項目をクリックしても、同じような結果が返ってくる。
これはこれで便利だ。が、ファイルしか並べ替えてくれない。
なんでか知らないが、フォルダは並べ替えてくれないのである。
du コマンド
そんな時はとっととシェルスクリプトだ。
du コマンドを使えばフォルダのサイズを調べられるはず。
du コマンドは下記のサイト様を参考にさせていただきました。
🔗 Linuxコマンド【 du 】ファイルのディスク使用量を表示 – Linux入門 – Webkaru
du コマンドはファイルのディスク使用量を表示してくれるコマンドだ。
単純にdu ディレクトリ
で内包しているファイルのサイズと、最後にフォルダ内のファイルのサイズの合計を返してくれる。フォルダでなく、ファイルを指定してもいい。
[>_ ] > du 倉庫
32 倉庫/フォント/k-font/mplus-TESTFLIGHT-058
8552 倉庫/フォント/k-font
672 倉庫/フォント/inconsolata-g_font
……中略……
2921032 倉庫
-s
オプションで、フォルダのサイズのみを表示する。
[>_ ] > du -s 倉庫
2921032 倉庫
-h
オプションをつければ、サイズの単位を馴染み深いキロバイト、メガバイトなどで表示してくれる。
[>_ ] > du -sh 倉庫
1.4G 倉庫
なかなかいい感じだ。
こんな感じのシェルスクリプトを考えてみた。
シェルスクリプト
📝 dirsize.sh
#!/bin/zsh
# dirsize.sh path/to/directory
cd $1
du -s * | sort -gr | sed -e 's/^[0-9]*\t//g' | while read line
do
if test -d "${line}"; then
du -sh "${line}"
fi
done
sort コマンドは下記のサイト様を参考にさせていただきました。
🔗 sortコマンドについて詳しくまとめました 【Linuxコマンド集】
データサイズの大きい順にフォルダ名を表示する、というスクリプトだ。
dirsize.sh フォルダのパス
というふうに引数をつけて使う。
実行結果はこんな感じ。
[>_ ] > dirsize.sh ~/Movies
11G エロいの
364M 4K Video Downloader
4.3M iMovieライブラリ.imovielibrary
260K TV
8.0K iMovie Theater.theater
0B Motion Templates.localized
どのフォルダを削除すべきか、一目瞭然というわけである。