我刚刚开始使用Mac OS X。在根目录下/
,有一个名为的文件夹Volumes/
。
当我进入目录时Volumes/
,有一个名为的目录Macintosh HD/
。当我进入目录时Macintosh HD/
,我回到根目录,然后我可以Volumes/
再次进入目录。如果我继续这样做几次,并使用 pwd 检查我所在的目录,我会发现我在一个名为的目录中/Volumes/Macintosh/Volumes/Macintosh/Volumes/Macintosh
。
我无法理解这背后的逻辑。有人能解释一下吗?
答案1
首先,了解一下/Volumes/
目录所有已安装的卷在您的 Mac OS X 系统上自然会出现。您之所以看到这种行为,是因为这只是您系统上的 (root)Macintosh/
的一个符号链接;这样做是为了让您除了对该卷的 (root) 访问权限之外,还对该卷具有命名访问权限。/
/Volumes
/
例如,如果您进入系统上的终端,输入cd /Volumes
然后输入,ls -la
您可能会看到如下内容:
drwxrwxrwt@ 7 root admin 238 Sep 13 23:55 .
drwxr-xr-x 29 root wheel 1054 Sep 13 01:43 ..
lrwxr-xr-x 1 root admin 1 Sep 13 16:42 Macintosh -> /
符号链接基本上就像 Finder 中的别名;但在文件系统级别,符号链接就是“别名”。
至于为什么你看到它这样做,/Volumes/Macintosh/Volumes/Macintosh/Volumes/Macintosh
那pwd
只是文件系统在解释你的路径。是的,这看起来很奇怪和令人困惑,但不要困惑。唯一以/Volumes/
这种方式运行的挂载卷是系统的根 ( /
) 卷。如果你挂载任何其他卷,它们将显示在/Volumes/
并且不会像那样循环,因为它们将是实际的挂载卷,而不是符号链接。
至于为什么会出现这种嵌套符号链接/目录行为,这个问题很难回答。但基本上所有 Linux/Unix 系统都是这样。Unix & Linux Stack Exchange 上的此问答主题确实非常详细地解释了为什么存在由符号链接导致的嵌套目录。