Directory-Structure

達爾文的“私人”目錄有什麼用?

  • February 3, 2013

Darwin 有一個我在我找到的 Unix 文件中沒有看到private的目錄。那是特定於 Mac 的目錄嗎?它是乾什麼用的?系統升級之間是否保留?

/private 是標準 unix 文件系統層次結構的一部分的容器,這些層次結構可能在各個電腦之間有所不同(例如,/etc 是 /private/etc 的符號連結,實際的配置文件在其中)。AIUI 最初是為了支持 NextSTEP 下的網路啟動。這個想法是 / 將是一個安裝在網路上的共享驅動器,並且一個本地捲將安裝在 /private 上以儲存每台電腦的文件(請參閱這個以前的 apple.se 答案)。這種需求早已過去,但該組織因慣性而停滯不前。

至於升級過程中的處理:升級過程中大部分留在原地,但可能會進行修改。例如,下面是 10.8.2 更新中新/更改文件的列表:

$ pkgutil --payload-files OSXUpd10.8.2.pkg | grep ./private
./private
./private/etc
./private/var
./private/var/db
./private/var/tmp
./private/var/tmp/DeferredInstallFixup.file_list
./private/var/db/.SystemPolicy-default
./private/var/db/dslocal
./private/var/db/dslocal/nodes
./private/var/db/dslocal/nodes/Default
./private/var/db/dslocal/nodes/Default/groups
./private/var/db/dslocal/nodes/Default/groups/_assetcache.plist
./private/var/db/dslocal/nodes/Default/users
./private/var/db/dslocal/nodes/Default/users/_assetcache.plist
./private/var/db/dslocal/nodes/Default/users/_geod.plist
./private/var/db/gke.auth
./private/var/db/gke.sigs
./private/etc/authorization.merge

請注意 /private/var/db/dslocal/nodes/Default/ 在標準 unix 系統上相當於 OS X 的 /etc/passwd、/etc/groups 等,因此安裝所做的是創建(或替換它們已經存在)使用者 _assetcache 和 _geod,以及組 _assetcache。其他使用者和組將保留在原地。

此外,上述列表可能不完整。它僅顯示直接包含在更新有效負載中的文件,而不顯示將由安裝程序中包含的腳本修改的文件。

引用自:https://unix.stackexchange.com/questions/63555