Mac 系統如何利用軟連結在根目錄建立資料夾?

程式設計師泥瓦匠發表於2021-10-28

作者:泥瓦匠 出處: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 歡迎轉載,也請保留這段宣告。謝謝!

相關文章