之间有什么区别:
ln -s /mnt/extra/home /
和
mkdir /home
mount --rbind /mnt/extra/home /home
mount --rbind /mnt/extra/home
已经是一个挂载的目录
之间有什么区别:
ln -s /mnt/extra/home /
和
mkdir /home
mount --rbind /mnt/extra/home /home
mount --rbind /mnt/extra/home
已经是一个挂载的目录
Answers:
mount --rbind
进行递归绑定安装;也就是说,/mnt/extra/home
也可以通过来访问安装在其上的文件系统层次结构/home
。
实际上,该ln -s
解决方案与该mount --rbind
解决方案之间的主要区别在于,with ln -s
/home
是符号链接,而with mount --rbind
是目录。这会影响像工具find
,df
,test
/ [
等。
另外,ln -s
如果/home
存在,mount --rbind
将失败,而如果不存在或不是空目录,则失败。
Mark在下面的评论也很重要:ln -s
需要一个可写文件系统来创建符号链接。
ln -s
修改文件系统,而mount --rbind
没有修改。这意味着您可以将主目录挂载在只读根目录(例如引导CD)上,但不能在其上进行符号链接。
--bind
并且--rbind
不在乎我的目标目录是否为空,它们只是在存在的任何文件上“挂载”,使它们无法访问
在这种情况下,绑定安装和符号链接在大多数情况下都将类似地工作,但是它们之间确实存在重要区别。
符号链接更加轻巧。您可以拥有数百或数千个符号链接,而这并不会带来很大的管理问题。它们位于文件系统中,而不需要特殊的系统级设置。
可以使用cp和rsync之类的工具正确备份和复制符号链接。也就是说,这些工具可以识别并复制符号链接,从而确保在还原时,该链接可以还原并指向正确的目标。默认情况下,它们都将“正确”运行。相比之下,在备份或复制绑定安装时,将透明地处理安装,导致文件本身被复制,如果您在其他位置也获得相同文件,则可能导致重复,并且如果需要,则需要进行额外的工作在目标位置复制绑定安装。
符号链接可以由有权访问该链接的任何用户修改或删除,因此很容易将其设置为“仅超级用户”或向特定用户开放。绑定安装只能由超级用户设置或修改。
如果这听起来像是对符号链接的热烈赞同,那就是。它们是在文件和目录之间链接的更直接的方法。仅在符号链接不起作用的情况下才使用绑定安装,这种情况可能比您想象的要少。大多数工具(包括备份和同步工具)对于符号链接都具有合理的默认行为,并且它们对符号链接的处理可能是可配置的。绑定安装对于此类工具是透明的,因此您将失去灵活性,并可能失去明智的行为(例如,如上所述,备份中目录的重复)。
ln
建立链接;特别是ln -s
进行符号链接。mount
将文件系统挂载到目录上。他们没有共同之处。