由於 macOS 預設分割槽和卷都是大小寫不敏感的,對於開發者來說,通常需要面對的是大小寫敏感的環境。並且,這個小差異的確帶來了一些不便,例如 使用 Git 時遇到的坑。然而,自己又沒有勇氣重新格式化、裝系統。直到最近,在跟同事聊天時給了我一個啟發……
思路
macOS 最新的 APFS 檔案系統支援在 Container 內任意建立 Volume(卷),比分割槽簡單快捷很多,同時還可以單獨指定是否大小寫敏感。再加上 Unix 能夠任意掛載的特性,因此我只需建立一個新卷,將專案檔案移動過去,隨後將該卷掛載至原始碼目錄即可。
具體操作方式如下。
步驟
建立大小寫敏感的卷
首先,開啟 Disk Utility,確保你的檔案系統是 APFS;若是 HFS,請 升級。
在左側列表右鍵單擊 Macintosh HD,選擇 Add APFS Volume。
給它起個名字,隨後 Format 選擇 APFS (Case-sensitive),務必注意大小寫敏感。
確認無誤後點選 Add 即可。
遷移資料
沒有問題的話,新建立的卷應該已經掛載到 /Volumes/<NAME>
目錄,接下來需要把原有程式碼檔案移動到這個卷。使用 mv
命令,或是通過 Finder 操作均可。
修改掛載點
預設情況下,系統會將所有卷掛載至 /Volumes
目錄下,以卷名區分。我的專案存放於 /Projects
,因此需要將新卷掛載到該目錄。
再次開啟 Disk Utility,在左側列表右鍵單擊新建立的卷,選擇 Get Info。點選 File system UUID 一行,使用 Command
+ C
複製出來:
File system UUID : XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX
記住冒號後的 UUID。接下來點選 Unmount 按鈕解除安裝該卷。
開啟終端,使用 sudo vifs
即可編輯 /etc/fstab
檔案,輸入以下內容並儲存:
UUID=XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX <MOUNT_POINT> apfs rw 0 2
請注意將 <MOUNT_POINT>
替換為掛載目錄,例如 /Projects
。若該目錄不存在,不要忘記建立它。
重新掛載
重新點選 Mount 按鈕或是 mount -a
命令均可。
完成!效果如下:
結語
參考: