在 macOS 內使用大小寫敏感的 APFS 卷儲存程式碼

Wi1dcard發表於2019-02-21

由於 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 命令均可。

完成!效果如下:

file

結語

參考:

我感謝自己平凡,敢愛敢恨沒負擔。
我感謝自己不凡,可愛可恨都包攬。

相關文章