~/Library/Containers はキャッシュのフォルダーではありません。この一点で疑問のほとんどは片づきます。ここにあるのはサンドボックスで動くアプリのデータ、つまり設定、データベース、ダウンロードしたメディアです。いま使っているアプリのコンテナーを消せば、そのアプリは初期化され、データも一緒に消えます。去年削除したアプリのコンテナーを消せば、容量が空くだけで失うものはありません。
基本ルール:各コンテナーを、いま持っているアプリと突き合わせてください。裏にアプリがないものだけを消し、それ以外は残します。
簡潔な回答
- サイズ順に並べる:
du -sh ~/Library/Containers/* | sort -h | tail -20。 - フォルダー名のバンドル ID を読み、対応するアプリを特定する。
- Mac から消えたアプリのコンテナーだけをゴミ箱へ移す。
- 使い続けるアプリなら、保存されたメディアはアプリの中から削除する。
~/Library/Group Containersはより慎重に。複数のコンポーネントが共有している。- コンテナーに触れる前にアプリを終了し、ゴミ箱は一日そのままにする。
コンテナーとは何か
macOS はサンドボックスのアプリを、そのアプリ専用の制限されたホームフォルダーの中で動かします。App Store のアプリはすべてこの方式で、ストア外で配布される多くのアプリも同じです。この専用ホームフォルダーがコンテナーです。
ひとつ開いてみると、構造は見慣れたものです。
~/Library/Containers/com.apple.Safari/
Data/
Library/
Application Support/
Caches/
Preferences/
Documents/
Desktop/ -> 本物のデスクトップへのリンク
Downloads/ -> 本物のダウンロードフォルダーへのリンク
アプリは Data を自分のホームディレクトリとして見ます。その中の Library には、そのアプリだけのものが入ります。Desktop と Documents の項目は本物のフォルダーを指すシンボリックリンクで、権限があるときにだけアプリはそれをたどれます。
この点が、多くの人が心配することへの答えです。コンテナーを消すのはリンクを消すことであって、リンク先のファイルは消えません。書類はもとの場所に残ります。
削除すると何を失うか
アプリ固有の部分は本物のデータです。
- そのアプリのアカウント設定とサインイン状態;
- 設定とウインドウの状態;
- 構築したデータベース。メールの索引やメッセージの履歴など;
- ダウンロードして自分のストレージに収めたメディア。
コンテナーが見つからないアプリは、入れたばかりのように起動します。サーバーから同期するノートアプリなら、代償は再ダウンロードです。すべてをローカルに持っていたアプリなら、代償は中身そのものです。
どのコンテナーなら安全に消せるか
安全なのは、Mac にもう存在しないアプリのものです。
du -sh ~/Library/Containers/* | sort -h | tail -20
大きいフォルダーを取り上げ、名前を読みます。com.company.appname から開発元とアプリが分かります。次に、そのアプリが /Applications にまだあるかを確かめます。ない場合、そのフォルダーは残骸です。アプリは消え、コンテナーだけが残りました。ゴミ箱へ移してください。
アプリがまだ入っているなら、コンテナーはそのままにして、大きさはアプリの中から扱います。メッセージアプリ、メールクライアント、ブラウザーには保存メディアやキャッシュの設定があり、その道ならアカウント設定は保たれます。
Group Containers は仕組みが違う
~/Library/Group Containers には、同じ App Group を宣言したコンポーネント同士が共有するストレージが入ります。アプリと拡張機能、アプリとウィジェット、スイートとヘルパーです。ひとつのフォルダーが、目に見える複数のソフトウェアを支えていることがあります。
ルールは同じで、影響範囲だけが広がります。手元にないソフトウェアのグループコンテナーを消すのは問題ありません。現役のアプリが拡張機能と共有しているものを消すと、両方の共有状態が壊れ、そしてアプリは理由をあなたに伝えられません。
大きいコンテナーの中身
ほとんどのリストに、いくつかの名前が顔を出します。
- メッセージアプリ。 受信した写真や動画がコンテナー内に積み上がります。多くは保存容量の画面を持っていて、アカウントに触れずに古いメディアを消せます。
- メール。 ダウンロードした添付のコピーがコンテナーに残り、何年も静かに増えます。
- Safari。 キャッシュは
~/Library/Cachesではなくcom.apple.Safariの中にあります。だからキャッシュ一覧にブラウザーが見当たらないのです。 - 一度だけ試したアプリ。 何年も前に消えたソフトウェアの小さなフォルダーが数十個。個別には無視できても、合計すれば数百 MB になります。
面倒を避ける手順
- コンテナーをサイズ順に並べ、上のほうだけを見る。
- それぞれについて、アプリがまだ入っているかを判断する。
- 動いていればアプリを終了する。
- 持ち主のいないコンテナーだけをゴミ箱へ移す。
- Mac を一日使い、それからゴミ箱を空にする。
- 残すアプリについては、そのアプリの設定を開いて保存済みメディアを消す。
手順 2 がこの作業のすべてです。裏に何もなければ消す価値があり、何かがあれば残す価値があります。
まとめ
~/Library/Containers はアプリのデータとして扱ってください。実際にそうだからです。問いは「コンテナーは削除してよいか」という一般論ではありません。特定のコンテナーの裏に、まだアプリがいるかどうかです。いなければゴミ箱へ。いるなら、アプリの中に入って保存物を消し、コンテナーは macOS が置いた場所に残しておきましょう。
よくある質問
Mac の Containers は削除しても安全ですか?
手元にもうないアプリのものだけです。コンテナーにはサンドボックスで動くアプリのデータが入っています。設定、そのアプリが管理する書類、ダウンロードした内容です。インストール済みアプリのコンテナーを消すと、そのアプリは初期状態に戻り、データも一緒に消えます。数か月前に削除したアプリのコンテナーなら、容量が空くだけで失うものはありません。
Mac の ~/Library/Containers フォルダーとは何ですか?
サンドボックスで動く各アプリ専用のホームフォルダーを macOS が置く場所です。App Store のアプリはすべて、それ以外の多くのアプリもここに入ります。各サブフォルダーはアプリのバンドル ID で名付けられ、そのアプリだけの小さなホームディレクトリのような Data フォルダーを持ちます。
コンテナーを削除すると書類も消えますか?
コンテナーの Data フォルダーにあるデスクトップ、書類、ダウンロードの項目は、本物のフォルダーへのシンボリックリンクです。コンテナーを消してもリンクが消えるだけで、ファイルはそのまま残ります。失われるのはアプリ自身がコンテナー内に保存したデータ、つまり設定、データベース、そこにダウンロードした内容です。
Containers と Group Containers の違いは何ですか?
コンテナーは 1 つのアプリのものです。~/Library/Group Containers にあるグループコンテナーは、同じ App Group を宣言したアプリ同士で共有され、アプリが自分の拡張機能やウィジェットとやり取りする経路になります。グループコンテナーの削除は複数のコンポーネントの共有状態を一度に壊しうるので、単体のコンテナーより慎重に扱ってください。
削除したアプリのコンテナーはどう見つけますか?
~/Library/Containers のバンドル ID を、いま入っているアプリと突き合わせます。アプリケーションフォルダーにもう存在しないアプリの名前が付いたフォルダーは残骸なので、ゴミ箱へ移して構いません。まずサイズで並べ替えてください。残骸の多くは小さく、手間をかける価値があるのは一部だけです。
なぜひとつのコンテナーが数 GB もあるのですか?
メッセージアプリは受信したメディアをコンテナー内に保存し、メールはダウンロードした添付のコピーを保持し、Safari はキャッシュをそこに置きます。こうした場合はアプリ自身の設定を開き、保存されたメディアを中から削除できることが多く、アカウント設定ごとコンテナーを消すより安全です。