macOSで有料ユーティリティやサブスクリプション不要のディスククリーン術
見覚えのある光景だろう:macOSの設定で「ストレージ」タブを開くと、「システムデータ」カテゴリに何ギガバイトも使用されている。どこに使われたのか、システムはほとんど説明してくれない。解決策を探し始めると、検索エンジンはすぐに、きれいなインターフェースと年間サブスクリプションで40ドルという価格タグついたオールインワンツールを提案してくる。
月に1回キャッシュを削除するために有料になるものは、普通、開発者が望むものではない。軽量な代替手段を探していたところ、開発者のHaralambi Dobrev (hkdobrev)によるcleanmacプロジェクトを見つけた。これは静かにシステムのごみを 片付ける通常のbashスクリプトだ。
なぜクリーンアップ用に別個のスクリプトが必要なのか
ほとんどの開発者はマシン上に多種多様なツールを抱えている。XcodeはDerivedDataフォルダに何十ギガバイトも蓄積する。Dockerは古いイメージのレイヤーを保存する。npmやyarnのようなパッケージマネージャーは数年間キャッシュを保持する。
すべてのパスとコマンドを手動で覚えておくのは時間がかかる。サードパーティのGUIアプリは多くの場合バックグラウンドプロセスで実行され、通知を送信し、RAMを消費する。cleanmacスクリプトは 直接問題を解決する:ターミナルで実行すると既知のディレクトリを巡回し、容量を解放して終了する。
注記として:著者は最近リポジトリをアーカイブし、より新しいMoleツールの確認を推奨している。しかしcleanmac.shは非常に透明に書かれているため、自分のdotfilesからスニペットを抽出したり、そのまま使えるレシピとして使用したりすることが容易である。
cleanmacが具体的に何をクリーンアップするか
スクリプトの中には魔法はない—具体的な作業関連の不要物をクリアするコマンドだけだ。
スクリプトは4つの主要な不要物グループをチェックする:
- 開発キャッシュ:DerivedDataフォルダとXcodeアーカイブ、npmとyarnキャッシュ。
- コンテナ:未使用のレイヤーと停止したDockerコンテナ。
- システムジャンク:アプリケーションログ、Safariキャッシュ、6のユーザキャッシュとゴミ箱の内容。
- RAM:システムユーティリティ呼び出し7によるディスクキャッシンリセット。
システムキャッシュの削除が経過時間で設定できるのは便利だ。デフォルトでは、スクリプトは過去7日以内に作成されたファイルをそのままにする。新しいキャッシュに触れたくない場合は、引数で異なる間隔を渡すことができる。
スクリプトの実行方法
インストールはリポジトリのクローンにすぎない:
0ギガバイト単位のファイルを削除する前に、スクリプトが何を削除するかをプレビューするのは賢明だ。この目的のためにセーフモードが 利用可能だ:
18フラグはデータを実際に削除せずにパスをリストする。リストが気に入ったら、クリーンアップを実行する:
2スクリプトはシステムログを削除したりRAMリセットを実行する必要がある場合、スーパーユーザー権限を要求する。
内部構造とそこから学べるこ と
独自の自動化スクリプトを書く人にとって、cleanmacはクリーンなbashコードの例として興味深い。よく構造化された引数処理、インストールされたユーティリティのチェック(例えばDockerがシステムにインストールされているかどうか)、出力書式設定がある。
完全な機能が必要ない場合は、必要な関数だけを抽出できる。例えばDerivedDataをクリーンアップする行:
3またはDockerイメージのクリーンアップ呼び出し:
4これらの2つのコマンドをzshrcのエイリアスに追加することは、不透明なテレメトリを持つクローズドソフトウェアをインストールするよりも高速で安全なことが多い。
誰が役立つか
このプロジェクトは以下のような人々に適している:
- 256GBまたは512GB SSD搭載のMacで作業する。
- iOSまたはWeb開発 активно行っており、キャッシュが数週間でディスクを埋め尽くす。
- クローズドの有料ユーティリティよりオープンなシェルスクリプトを好む。
- 自分のシステムメンテナンススクリプトの準備されたコマンドを覗いてみたい。
リポジトリがアーカイブされた状態でも、cleanmacは日常的なタスクへのシンプルなアプローチを完璧に実証している:ヘビーなプログラムの代わりに、時には30行のBashで十分だ。ターミナル内でインタラクティブなインターフェースを持つ активно維持されているツールが必要な場合は、著者が言及したMoleを確認してほしい。クイックな一回限りのクリーンアップには、cleanmacも十分に役立つ。
関連プロジェクト