為什麼/var/mail/{使用者名稱} = /Users/{使用者名稱}?

為什麼/var/mail/{使用者名稱} = /Users/{使用者名稱}?

我的基本問題是為什麼這兩條路徑都指向 home(即~)?它指向同一個家還是重複的?

我懷疑它是重複的,所以如果不是,如何cd ..決定將我帶回哪個目錄?

答案1

行為方式cd ..取決於 shell、shell 設定以及是否涉及符號連結(在本例中很可能如此)。

bash-4.1$ cd /var/tmp
bash-4.1$ mkdir -p real/cats
bash-4.1$ ln -s real/cats dogs
bash-4.1$ cd dogs/
bash-4.1$ pwd
/var/tmp/dogs
bash-4.1$ pwd -P
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp
bash-4.1$ set -o physical
bash-4.1$ cd dogs
bash-4.1$ pwd
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp/real
bash-4.1$ 

調查/var/mail目錄ls應該會顯示是否有任何符號連結是由我猜是蘋果公司完成的。

答案2

在 macOS 上(我猜這是因為你提到的/Users),/var/mail/usernamemboxuser 的 -formatted 收件匣郵箱username,並且/Users/username是同一用戶的主目錄。

在普通的、未經修改的 macOS 安裝上,/var/mail/username不是是到用戶主目錄的符號鏈接,也不是/Users/username/var/mail/username.


cd ..預設會像這樣工作cd -L ..,即它會帶你到邏輯的父目錄而不是身體的父目錄 ( cd -P ..)。

來自kshmacOS 上的手冊:

預設情況下,查找目錄名稱時會按字面意思處理符號連結名稱。這相當於-L選項。此-P選項會導致在確定目錄時解析符號連結。命令列上-L或的最後一個實例決定使用哪種方法。-P

相關內容