为什么必须在挂载共享之前创建目录?


11

为什么必须在挂载共享之前创建目录?

例如:我从不明白为什么这里需要mkdir:

mkdir /Volumes/foo
mount -t afp afp://username:pass@pretendco.com/foo /Volumes/foo

Answers:


3

在unix和与unix相似的系统上,包括Mac OS X文件系统的系统在逻辑上与Windows上的系统布局完全不同。没有诸如C或D之类的驱动器之类的东西。只有一个文件系统,它按层次结构(树结构)布置。此文件系统可以由计算机中的一个物理驱动器或多个物理驱动器组成。它也可以由内存组成,并通过诸如NFS,CIFS等协议从另一台计算机共享。由于本身没有驱动器,因此您需要在文件系统上某个位置可以附加或挂接该额外的存储,以便创建一个目录,然后将另一个文件系统挂载在那里。

例如,Linux系统具有/ mnt目录或/ mnt层次结构,其中包含cdrom等目录。在这种情况下,您不需要首先创建目录,您可以使用其中之一,但由于挂载点可以位于文件系统上的任何位置,因此您不需要这样做。如果需要更多空间,可以添加一个驱动器,将数据移到该驱动器上,然后将其安装在旧目录所在的位置,这样一切都会保持正常工作,而无需进行任何更改。


感谢您发现那个。当我检查消息时错过了它。发布正确。
肖恩·普雷斯顿

好吧,杀死了我的评论:)
lImbus

5

因为没有人提交补丁来添加--create-dir选项来进行安装?:)


我非常确定NEXTSTEP的行为与--create-dir选项相同。我花了最后一个小时在互联网上寻找证据,但是可惜没有成功!
阿德里安·史密斯

第二个补丁是“在卸载或关闭时自动删除目录”
WinEunuuchs2Unix

5

这是因为在安装目录时,您是在对系统说:“就像在<网络共享>上的文件确实在<本地文件夹>上一样操作。” 如果系统没有该本地文件夹,则无法在其中放置那些网络文件。


2

最令人不安的是,恕我直言,在某处创建链接不需要touch/ mkdir,而需要挂载(即使在-bind本地)。

但它可能进入同一节为“为什么当大家只需要符号链接,并有硬链接的默认ln -s


2

在内核可以挂接到目录路径之前,需要在/ volumes中创建目录条目(在此特定示例中)。


1
从技术上讲,这是不正确的。您可以在层次结构中的任何位置挂载文件系统-标准做法是将文件挂载在/ Volumes /中(由操作系统自动完成),但是有时将其挂载在特定位置是有意义的。
Chealion

哦,在这种情况下,我只指/ volumes。:)一般而言。
MikeyB

这更有意义。:-)
Chealion
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.