为什么/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

相关内容