chrome プロファイル 場所 変更|Macでの保存先の移し方

この検索には質問が2つ入っている。Chromeがプロファイルのデータをどこに置いているのか、という短い答えで済むほうと、その場所を変えられるのか、という長い答えが要るほうだ。後者が長くなるのは、Chromeの設定画面にその項目が無く、代わりの仕組みが多くの人の予想と違う動き方をするからになる。しかも移すと、目に見えないものまで一緒に動く。期待が外れる原因はたいていそこにある。

Macでの保存場所

Chromiumの資料には、OSごとの既定の場所が明記されている。macOSではユーザーのライブラリの中になる。

The default location is in the Application Support folder: [Chrome] ~/Library/Application Support/Google/Chrome 出典: chromium.googlesource.com

このパスには階層が2つある。ここを混同すると、この先の話が全部ややこしくなる。上のフォルダがユーザーデータのディレクトリで、個々のプロファイルはその中のサブフォルダになる。最初に作られたものが Default、以降は作られた順に Profile 1、Profile 2 と並ぶ。ブックマーク、Cookie、設定、拡張機能はプロファイル側にある。インストール全体に関わるもの、たとえば各プロファイルの表示名を記録しているファイルは、上のディレクトリ側にある。

資料を読まなくても、ブラウザ自身に聞ける。Chromiumの資料が示している手順は、chrome://version を開いてプロファイルパスの欄を見て、その1つ上の階層をユーザーデータのディレクトリと見なす、というものになる。表示されるのはその窓で使われているプロファイルなので、窓ごとに答えが変わる点は覚えておきたい。

系統の違うChromeは別の場所を使う。Chrome Beta、Chrome Dev、Chrome Canary、Chrome for Testing、Chromiumは、それぞれ安定版の隣に自分のディレクトリを持つ。Canaryを併用しても普段の環境が壊れないのはこのためになる。

フォルダ名と表示名は別物

プロファイルの切り替え画面に出ている名前は、プロファイルのフォルダの中にはない。ユーザーデータのディレクトリ側にある小さな記録ファイルが持っている。だから画面で名前を変えても、ディスク上のフォルダ名は作られたときのまま動かない。表示は「仕事用」なのに、実体は Profile 7 というフォルダ、という状態が普通に起きる。

この食い違いが効いてくるのは、コマンドやスクリプトからプロファイルを指定するときになる。指定に使うのはフォルダ名のほうで、表示名では当たらない。目的のプロファイルの窓で chrome://version を開き、パスの末尾を書き写すのが確実な手順になる。存在しないフォルダ名を書いてもエラーにはならず、その名前で空のプロファイルが作られて開く。

キャッシュは同じ場所に無い

保存先を変えて期待どおりの結果になるかどうかは、この事実で決まる。macOSでは、キャッシュは既定ではプロファイルと一緒に置かれていない。Chromiumの資料は、条件で分かれる規則として書いている。

If Library/Application Support is an ancestor of the profile dir, the user cache dir is Library/Caches plus the relative path from Application Support to the profile dir. Otherwise, the user cache dir is the same as the profile dir. 出典: chromium.googlesource.com

既定の場所に置いてある限り、前半の枝が使われる。閲覧のキャッシュはライブラリのCachesフォルダの下に、プロファイルの構造を写した形で置かれる。いちばん速く太り、いちばん失っても困らない部分がそこにある。

ユーザーデータのディレクトリを Application Support の外へ移すと、後半の枝に切り替わる。キャッシュは分けて置かれなくなり、移した先のフォルダの中に入る。内蔵ディスクの空きを作る目的で外付けへ移した人は、ここで思っていたのと違う結果を受け取ることになる。それまで内蔵側の、macOSが整理してくれるフォルダに書かれていたキャッシュが、以後は外付けへ書かれ続けるからだ。速度の出ないドライブやバスパワーの機器では、ページを開くたびに体感で分かる。

場所を変える唯一の方法

Chromeの設定にこの項目は無い。用意されているのは起動時のオプションだけになる。

On most platforms, the user data directory can be overridden by passing the --user-data-dir command-line flag to the Chrome binary. 出典: chromium.googlesource.com

Macでは open コマンド経由で渡す。-n で新しい実体を立て、--args から先をChromeに渡す形になる。

open -na "/Applications/Google Chrome.app" --args --user-data-dir="$HOME/Documents/ChromeAlt"

見落とされやすいのは、これがインストール全体ではなく1回の起動の性質だという点になる。Dockのアイコンを押しても、Spotlightから開いても、メールのリンクを踏んでも、Chromeは普段どおりの場所で立ち上がる。このやり方で変わるのは、コマンドから起動したときだけになる。

Chromiumの資料には、日常使いに耐える形にする手順も載っている。スクリプトエディタを開き、Chromeの実行ファイルを希望の --user-data-dir 付きで起動するシェルコマンドを書き、ファイルフォーマットをアプリケーションにしてアプリケーションフォルダへ保存する、という流れになる。同じページには、情報ウインドウ経由でChromeのアイコンを貼り付けて見た目をそろえる手順まで書かれている。ここまでやると、Dockに置けて、Spotlightからも開ける形になり、設定にいちばん近いものが手に入る。

指定したパスが存在しない場合、エラーにはならない。Chromeはそのパスを作り、ブックマークも拡張機能もログインも無い状態で起動する。打ち間違えた人にはデータが消えたようにしか見えないので、初めて試したときに驚く原因のほとんどがこれになる。

いまのデータを持っていく手順

オプションで新しいパスを指すと、そこにできるのは新品のブラウザになる。いまの環境を連れていくのは別の作業で、順番が結果を決める。

まずChromeを完全に終了する。窓を閉じるだけでは足りない。プロファイルは開かれたままのデータベースの集まりなので、Chromeが握っている最中にコピーすると、中身の辻褄が合わない写しができる。メニューから終了して、Chromeのプロセスが残っていないことを確かめてから先へ進む。

コピーは、最初の1回は移動ではなく複製にしておく。ユーザーデータのディレクトリを新しいパスへ複製し、オプションを複製側に向けて起動して、ブックマーク・拡張機能・ログイン状態がそろって来ているかを確認する。元がそのまま残っているので、駄目なら何も失わずに戻れる。確認が通ってから元を消せばよく、急ぐ理由は普通ない。

フォルダの場所は変えずに、フォルダそのものをシンボリックリンクに置き換えて別の場所を指す、というやり方もある。この場合はDockのアイコンから起動しても新しい場所が使われるので、Chromeが用意しなかった設定に見える。引き換えになるのは、外から見て分からないことになる。画面のどこにもリンクである表示は出ず、バックアップの道具は設定次第で追ったり無視したりし、Chromeの更新やmacOSの移行でフォルダが作り直されると黙って既定へ戻ることがある。1年後に自分で思い出せる人には使える手で、思い出せない人には罠になる。

ついでに1つ。キーチェーンに保存されているものは一緒に動かない。macOSのユーザーアカウントのログインキーチェーンに紐づいているため、別のMacや別のユーザーアカウントへの引っ越しは、同じMacの中でフォルダを移すのとは別の作業になる。

外付けやクラウドに置くと起きること

キャッシュ以外にも、変わるものが3つある。

1つ目は、いつでも使えるとは限らなくなることだ。Chromiumの資料には、2つのChromeが同じユーザーデータのディレクトリを共有することはできないと書かれている。移した先についても同じ前提が要る。起動の時点でその場所があり、書き込めなければならない。外付けを外している、ネットワークの共有がマウントされていない、同期の処理が途中で止まっている、のどれでもディレクトリは無いことになり、先ほどのラッパーは起動を拒むのではなく空のブラウザを開く。

2つ目は、下のファイルシステムが効いてくることだ。プロファイルは書き込まれ続けているデータベースの集まりになる。大文字と小文字の扱いが違うボリューム、ネットワーク共有、クラウド同期フォルダの中は、どれも書きかけの状態を別のプロセスに見られうる環境になる。中でもクラウド同期のフォルダは相性が悪い。Chromeが開いたままのファイルを同期の側がアップロードしようとするため、壊れたプロファイルと大量の無駄な通信を同時に手に入れることになる。

3つ目はバックアップになる。ライブラリのフォルダを丸ごと控える方式で守れていたものが、移した瞬間に対象から外れる。使っている道具に新しいパスを教える必要があり、それを確かめるべきなのは移した当日で、復元しようとした日ではない。

場所を変えるのが正しくない場合

このオプションにたどり着く動機はだいたい3つで、そのうちオプションが効くのは1つだけになる。

ディスクの空きを作りたいなら、まずどこが太っているかを見たほうが早い。Macの既定の状態では、キャッシュはすでにプロファイルの外、Cachesフォルダの下にある。そこはブックマークやログイン状態に触れずに片付けられる。ディレクトリごと移すと、消してよいものまで一緒に運んでしまう。

仕事と私用を分けたいなら、必要なのはパスではなくプロファイルになる。プロファイルはそのために用意されていて、起動オプションもラッパーのアプリも外付けディスクも要らない。

オプションが本当に効くのは、完全に独立した2つ目のChromeを動かしたい場合になる。ユーザーデータのディレクトリを分けると、拡張機能も設定も別になり、プロセスも別になるので、片方だけを終了できる。同じChromeの中でプロファイルを切り替える形とは、ここが決定的に違う。

やり方 ログインを分ける 拡張機能を分ける プロセスを分ける 起動のたびの手間
--profile-directory 不可 不可 オプションかラッパー
--user-data-dir オプションかラッパー
macOSのユーザーアカウント ログインし直す
アプリごとに窓を分ける 設定後は不要

最後の行が、Webアプリをまとめるブラウザの形になる。アプリごとに独立したワークスペースを最初から持つので、2つ目のユーザーデータのディレクトリを起動オプションで買っていた分離が、そのまま普段の状態になる。この分類の製品どうしで料金の考え方や置き換える範囲が違う点はWaveboxとの比較に、どのサービスを窓として置けるかは使えるアプリにまとめてある。何ができるようになるかを先に見るならできることが早い。

よくある質問

MacのChromeのプロファイルはどこに保存されていますか?

ユーザーデータのディレクトリは ~/Library/Application Support/Google/Chrome で、その中に Default、Profile 1、Profile 2 といったサブフォルダとして各プロファイルが置かれています。いま見ている窓がどのフォルダを使っているかは、chrome://version を開いてプロファイルパスの欄を見れば分かります。Beta、Dev、Canary、Chromiumは安定版とは別のディレクトリを使います。

設定画面から保存場所を変更できますか?

できません。Chromeにその設定項目はありません。変更は起動時に --user-data-dir を渡す方法だけで、その1回の起動にしか効きません。Chromiumの資料では、このコマンドをスクリプトエディタで小さなアプリケーションとして保存し、アプリケーションフォルダに置く手順が案内されています。これが実質的に永続化に近い方法です。

外付けドライブに移しても大丈夫ですか?

動きますが、2つの副作用があります。既定ではCachesフォルダに分けて置かれていたキャッシュが、移した先のフォルダの中に入るため、外付け側にキャッシュが書かれ続けます。また、起動時にドライブがマウントされていないと、Chromeは失敗せずにそのパスへ空のディレクトリを作って起動するため、接続し直すまではデータが消えたように見えます。

フォルダ名と画面に出ている名前が違うのはなぜですか?

切り替え画面に出る名前は、ユーザーデータのディレクトリ側にある記録ファイルが持つラベルです。ディスク上のフォルダ名はプロファイルが作られたときのまま変わりません。表示が「仕事用」でも実体が Profile 7 ということは普通に起こります。コマンドから指定するときはフォルダ名のほうを使ってください。

記事一覧へ戻る