WSL Ubuntu で容量を食ってるファイルを消す。ncdu と BleachBit

Windows 環境だと、CCleaner とか Glary Utilities とかみたいな、「無駄なファイルを一括削除するフリーソフト」がよくある。それらの怪しさはあるものの、こうした「一括クリーナー」みたいなのって、便利ではある。

Linux の世界だと、ls -l -h でディレクトリ直下のファイルのサイズを確認できる他、du -h コマンドを使うとディレクトリ単位での使用量が分かる。前者は「エクスプローラ上のファイルサイズの表示」、後者は「フォルダのプロパティから見られるサイズ表示」に相当する感じだ。

ただこれだと「指定ディレクトリに対する使用量が表示されるだけ」で、無駄なファイルの検出には苦労する。そこで紹介するのが、ncdu と bleachbit というコマンドだ。

ncdu で容量を食っているディレクトリを特定する

以降、WSL Ubuntu を前提に紹介する。apt でインストールして、以下のように実行する。

$ sudo apt install ncdu

# 容量を食っているディレクトリ順に表示される
$ ncdu ~/

こんな感じでホームディレクトリ配下の、「大容量を使っているディレクトリ」を順に閲覧できる。画面は TUI で、vi のように hjjk で移動できる感じ。どこに重たいファイルがあるのかはコレで閲覧しやすくなった。

BleachBit でクリーン作業を任せる

BleachBit は GUI も提供されているコマンド。WSL でもちゃんと GUI ウィンドウが出てくるのだが、日本語フォントを Ubuntu 側に入れていないと文字化けするのでその点だけ注意。

# インストール
$ sudo apt install bleachbit

# 日本語が文字化けする場合、英語で表示できればいい人は、以下のように英語指定で GUI を起動する
$ LANG=C.UTF-8 LANGUAGE=en_US bleachbit --gui

# 日本語フォントをインストールしていけば日本語表示もできるようになる
$ sudo apt install fonts-noto-cjk
$ fc-cache -fv

# 確認
$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

$ fc-match sans:lang=ja
NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"

# コレで日本語でも起動できる
$ bleachbit --gui

CUI オンリーでの実行も可能。

# 利用可能な掃除項目を表示する。コレを個別に指定しながら、指定した箇所だけクリーン作業もできる
$ bleachbit --list-cleaners

# 警告付き項目を除いて削除候補をプレビューする
$ bleachbit --preview --all-but-warning

# 実際に実行する場合は `--clean` オプションを指定して実行する
$ bleachbit --clean --all-but-warning

# 警告があるものも含めて消す場合は `--all` とする
$ bleachbit --preview --all
$ bleachbit --clean -all

# 出力例
$ bleachbit --clean --all-but-warning
最近使用したドキュメント一覧 0B
削除 1.6MB /var/log/syslog.1
apt-get clean 203.1MB
削除 32.2MB /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-en
journalctl --vacuum-time=1 369.6MB
ディスク容量の増加: 800.7MB
削除されたファイル数: 137
特殊な操作数: 6

こんな感じで削除できる。純粋なコマンドなので、root 権限がないファイルは削除されない。必要に応じて対象を確認・絞り込んで sudo bleachbit --clean するのもアリだろう。