为什么必须先创建目录才能挂载共享?
例如:我一直不明白为什么这里需要 mkdir:
mkdir /Volumes/foo
mount -t afp afp://username:[email protected]/foo /Volumes/foo
答案1
在 unix 和类 unix 系统(包括 Mac OS X)上,文件系统的布局在逻辑上与 Windows 上的布局非常不同。没有像 C 或 D 等驱动器之类的东西。只有一个以层次结构(树结构)布局的文件系统。此文件系统可以由一台机器中的一个物理驱动器或多个物理驱动器组成。它还可以由内存和通过 NFS、CIFS 等协议从另一台机器共享的内容组成。因为没有驱动器本身,所以您需要在文件系统上找到可以连接或安装此额外存储的某个位置,因此您需要创建一个目录,然后在那里安装其他文件系统。
例如,Linux 系统有一个 /mnt 目录或一个 /mnt 层次结构,其中包含 cdrom 等目录。在这种情况下,您不需要先创建目录,您可以使用其中一个目录,但您不需要这样做,因为挂载点可以位于文件系统的任何位置。如果您在某处需要更多空间,这个好处非常有用,因为您可以添加另一个驱动器,将数据移动到该驱动器上,然后将其挂载到旧目录所在的位置,一切都将继续工作而不会发生任何变化。
答案2
因为还没有人提交补丁来将 --create-dir 选项添加到 mount 中?:)
答案3
这是因为当您挂载目录时,您是在告诉系统,“就像 <网络共享> 中的文件实际上位于 <本地文件夹> 中一样。” 如果系统没有该本地文件夹,它就无法将这些网络文件放在那里。
答案4
在内核可以挂接到目录路径之前,需要在 /volumes 中创建目录条目(在此特定示例中)。