作者:泥瓦匠 出處: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 支援檔案軟連結形式
作者:泥瓦匠 (公號「程式設計師泥瓦匠」)出處:https://www.bysocket.com 歡迎轉載,也請保留這段宣告。謝謝!