← 所有文章

如何在 Mac 上用指定的 Chrome 設定檔開啟連結

Chrome 會在你上次使用的設定檔中開啟在其他應用程式中點選的連結,而且沒有設定可以改變這一點。要自己指定某個設定檔,可以在 chrome://version 查到它的資料夾名,然後用設定檔目錄參數啟動 Chrome;也可以讓 Burly 這樣能識別設定檔的瀏覽器選擇工具在每次點選時替你完成。

作者:Matt Senter,Burly 的開發者 · 發布於 · 5 分鐘閱讀

Matt Senter 是一名獨立 Mac 開發者,從設計、開發到發布,獨自完成一款款小巧的原生應用程式。他打造 Burly,是為了讓自己 Mac 上的每個連結都開啟到正確的瀏覽器設定檔中,包括其他連結路由工具無法觸及的 Safari 設定檔。這些頁面的內容都來自他的親身使用經驗。

如果你有一個工作 Chrome 設定檔和一個私人的,你幾乎肯定見過 Slack 或「郵件」裡的連結在錯誤的那個裡開啟。這不是故障。Chrome 會把來自其他應用程式的連結傳送到最近位於最前面的那個設定檔視窗,而 Google 的設定檔幫助中沒有提到任何選擇其他目標的選項。

本指南專門講 Chrome:Chrome 在底層如何識別設定檔,在命名的設定檔中開啟網址的命令,為什麼這條命令最直觀的寫法會失敗,以及如何讓整個過程自動化。如果你想了解所有瀏覽器中的同一問題,請見 Mac 瀏覽器設定檔指南。

為什麼 Chrome 會在錯誤的設定檔中開啟連結?

Chrome 把傳入的連結當作「在我正在用的那個 Chrome 視窗裡開啟」。當 macOS 交給它一個網址時,Chrome 會把它交給最近使用的設定檔,只有你恰好在那裡時,它才是正確的那個。Chrome 內部既沒有按連結的選擇,也沒有按應用程式的規則。

macOS 也幫不上忙。「系統設定」只允許你選擇一個預設瀏覽器應用程式,它不知道應用程式內部還有設定檔。於是決定權落到了 Chrome 手裡,而 Chrome 按最近使用來決定。

如何找到 Chrome 設定檔的資料夾名?

Chrome 透過設定檔在磁碟上的資料夾名來識別它,而不是你在設定檔選單中看到的名稱。第一個設定檔通常叫 Default,之後的依次是 Profile 1、Profile 2 等,即使你早就把它們重新命名為「工作」和「個人」也一樣。Chromium 關於使用者資料目錄的文件解釋說,每個設定檔都只是 Chrome 資料目錄下的一個子資料夾。

要檢視哪個資料夾屬於哪個設定檔:

  1. 在你關心的那個設定檔中開啟一個視窗。
  2. 在位址列中輸入 chrome://version 並按回車鍵。
  3. 找到標為「設定檔路徑」(Profile Path)的那一行。
  4. 記下路徑的最後一部分,例如 Default 或 Profile 2。這就是設定檔目錄名。
  5. 在每個你想指定的設定檔中重複這一步,並記下哪個資料夾對應哪個設定檔。

如何從終端在指定的 Chrome 設定檔中開啟網址?

知道資料夾名後,你就可以用 Chrome 的設定檔目錄參數,讓它在那個設定檔中開啟網址。在 Mac 上,通常的寫法是使用 open 命令,讓 macOS 替你找到應用程式:

open -na "Google Chrome" --args --profile-directory="Profile 1" "https://example.com"

把 Profile 1 換成你查到的資料夾名,把網址換成你想開啟的頁面。引號很重要:像 Profile 1 這樣的資料夾名含有空格,沒有引號的話,shell 會把它拆成兩個參數,Chrome 就會忽略這個參數。直接呼叫應用程式包內的 Chrome 執行檔時,同樣的參數也有效,Brian Hogan 的這篇指南記錄的就是這種寫法。

如果 Chrome 已在執行,它不會啟動第二個副本。新的啟動會把請求轉交給已經開啟的 Chrome,由它在你指定的設定檔中開啟頁面。這正是你想要的行為,所以不需要先結束 Chrome。

為什麼用設定檔的顯示名稱不行?

傳入你在選單中看到的名稱,比如 --profile-directory="Work",是最常見的錯誤。Chrome 會去找一個叫 Work 的資料夾,找不到後,要麼在另一個設定檔中開啟頁面,要麼用這個名字建立一個全新的空設定檔。無論哪種,連結都不會落在你想要的地方。這個參數要的永遠是 chrome://version 中顯示的資料夾名。

Chrome 在 Mac 上把設定檔資料夾放在哪裡?

Chrome 把所有東西存放在你使用者目錄下的「資源庫」中,依次是 Application Support、Google、Chrome。在那個資料夾裡,你會看到 Default、Profile 1、Profile 2 等,還有一個名為 Local State 的檔案,記錄了每個設定檔的顯示名稱、出現順序以及各自對應的資料夾。Chrome 讀取這個檔案來繪製設定檔選單,這就是為什麼重新命名設定檔永遠不會改變它的資料夾。

你不需要編輯裡面的任何東西,Chrome 執行時也不應該去動。知道它的位置只有一個用處:如果你不確定哪個資料夾對應哪個設定檔,chrome://version 中的「設定檔路徑」和這個目錄裡的資料夾名永遠是一致的。

同樣的命令在其他 Chromium 瀏覽器中也有效嗎?

大多有效。基於 Chromium 的瀏覽器,比如 Chrome Canary、Brave、Vivaldi 和 Microsoft Edge,使用相同的資料夾結構,也接受相同的設定檔目錄參數。不過它們各自有獨立的資料目錄,所以你需要在那個瀏覽器自己的版本頁面查詢資料夾,比如 brave://version 或 edge://version,並在命令中使用那個應用程式的名稱。

有一些例外值得了解。一些 Mac 使用者反映,Edge 已在執行時手動啟動,它會忽略這個參數;另外 Edge 還有自己的設定來決定哪個設定檔接收外部連結。這兩點都在 Mac 上的 Brave、Edge 和 Arc 設定檔中有介紹。

如果命令不再起作用怎麼辦?

大多數故障歸結為三種情況,每種都能快速檢查。

  1. 資料夾變了。如果你刪除後又重新建立了某個設定檔,它可能有了新的資料夾編號。再查一次 chrome://version,更新你的命令。
  2. 引號丟了。指令碼、快捷指令和自動化工具有時會去掉引號。如果設定檔名含有空格,確保它作為一個完整參數傳給 Chrome。
  3. 響應的不是那個 Chrome。Chrome Canary 和 Chromium 各有獨立的資料目錄,所以一個裡的資料夾名在另一個裡並不存在。確保命令中的應用程式名稱與你檢視 chrome://version 的那個瀏覽器一致。

能讓每個 Chrome 連結自動在正確的設定檔中開啟嗎?

終端命令適合書籤或指令碼,但對你在 Slack、「郵件」或日曆邀請中點選的連結毫無作用,因為這些連結會直接進入你的預設瀏覽器。要為它們選擇設定檔,必須有個東西位於點選和 Chrome 之間,接收連結,然後用正確的資料夾名執行相當於那條命令的操作。

這正是連結路由工具的用途,也正是 Burly 處理 Chrome 的方式。它讀取 Chrome 自己的設定檔列表,所以早已知道「工作」就是 Profile 2,並在你選中某個設定檔時,用正確的設定檔目錄啟動 Chrome。沒有需要查詢的東西,新增設定檔時也沒有需要同步的東西。

  1. 下載 Burly,並把它拖到「應用程式」資料夾。
  2. 開啟「系統設定」,進入「桌面與 Dock」,把 Burly 設為預設網頁瀏覽器。
  3. Burly 會自己找到你的 Chrome 設定檔,以及其他 Chromium 瀏覽器中的設定檔。
  4. 點選任意連結,從選擇器中選擇 Chrome 設定檔,或按下該設定檔的按鍵。
點選連結後出現的 Burly 花朵選擇器:頂部是按鍵 1 上的 Chrome 設定檔,其他花瓣上是 Firefox 和兩個 Safari 設定檔。
按 1,連結就會在那個 Chrome 設定檔中開啟,不需要資料夾名。

如果你的大多數連結都屬於同一個設定檔,你也可以把它固定下來:在 Burly 的「跳過」設定中把那個設定檔設為目標並開啟「反轉」,每個連結都會直接去那裡,除非你按住一個鍵來選擇。始終在同一個瀏覽器設定檔中開啟連結介紹了這種設定。如果你整天並排使用好幾個 Chrome 設定檔,同時使用多個 Chrome 設定檔介紹了工作流程的另一半。

免費試用 Burly

幾秒鐘內就能把每個連結路由到正確的瀏覽器設定檔。原生、私密、免費,無需帳號。

下載 macOS 版