我刚刚开始使用Mac OSX。在根目录下/
,有一个名为的文件夹Volumes/
。
当我进入目录下时Volumes/
,有一个名为的目录Macintosh HD/
。当我进入目录下时Macintosh HD/
,我回到根目录,然后可以Volumes/
再次进入该目录下。如果我继续这样做几次,并使用pwd检查我所在的目录,则会发现我位于名为的目录中/Volumes/Macintosh/Volumes/Macintosh/Volumes/Macintosh
。
我无法理解其背后的逻辑。有人可以解释吗?
首先,只需了解该/Volumes/
目录是Mac OS X系统上所有已挂载卷的自然显示位置。您之所以会看到这种行为,是因为Macintosh/
它只是/
系统上(根)的符号链接。这样就完成了操作,/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/
就是系统的root(/
)卷。如果您挂载任何其他卷,它们将显示在其中/Volumes/
并且不会像这样循环,因为它们将是实际的已挂载的卷而不是符号链接。
现在,关于嵌套符号链接/目录行为的“为什么”,这不是一个容易回答的问题。但是基本上所有的Linux / Unix系统都是这样。而在UNIX和Linux堆栈交流这个问题,答案线程不会进入一些极端的细节,为什么存在,您所造成的符号链接嵌套的目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句