作者:泥瓦匠 出處:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.html
Mac 操作系統挺適合開發者進行寫代碼,最近碰到了一個問題,問題是如何在 macOS 根目錄創建文件夾。不同的 macOS 版本處理方式不同,下面我們展開講一下
一、為什么要在 Mac 根目錄創建文件夾
有些場景程序需要訪問根目錄的特定文件夾,所以需要在 macOS 根目錄創建文件夾。
比如 Spring Boot 工程在 Mac 操作系統本地運行時,公司會默指定 /home/data/log
類似的目錄,來存儲工程運行的日志。
那怎么如何在 macOS 根目錄創建文件夾,下面分不同的 macOS 版本來解決:
- macOS@Catalina 版本
- macOS@Big Sur 版本
二、macOS@Catalina 版本的創建文件夾方法
第一步:關閉電腦然后重啟,重啟時長按 command + R 鍵,啟動內建的 macOS 恢復系統
第二步:從菜單欄找到終端工具,運行下面命令,然后重啟:
csrutil disable
這個命令目的是關閉 SIP,SIP 全稱為「System Integrity Protection」即「系統完整性保護」。可以通過 csrutil status
查看其 SIP 狀態。
第三步:重啟完后,先重新掛載根目錄,打開終端工具運行下面命令即可:
sudo mount -uw /
第四步:創建對應的 /Users/XXX/home/data/log
文件夾,然后將對應的文件目錄軟鏈接到根目錄。運行下面命令即可:
sudo ln -s /Users/XXX/home /home
注意:需要用軟鏈接來解決,是因為在根目錄直接創建文件夾的話,一旦重啟電腦,之前創建的目錄又是只讀權限了。
最后,重新重啟 command + R 鍵,啟動內建的 macOS 恢復系統,重新打開 SIP:
csrutil enable
三、macOS@Big Sur 版本的創建文件夾方法
第一步:啟動內建的 macOS 恢復系統,關閉 SIP
第二步:運行下面命令,修改 synthetic.conf 文件
sudo vi /etc/synthetic.conf
第三步:編輯該文件,輸入下面內容,將對應的文件夾映射到根目錄
home /Users/XXX/home
注意:
- 提前創建被映射的文件夾
- 中間是 Tab,不是空格
最后重啟系統后,系統根目錄就會出現了對應的文件夾,實現方式也是一個軟鏈接的形式
四、小結
幾個點可以總結出來:
- 盡量不要再 mac 根目錄操作一些命令,比如 chmod 等
- SIP 打開后,及時關閉
- mac 支持文件軟鏈接形式