NerdOfLinux Asked: 2017-11-17 14:47:18 +0800 CST2017-11-17 14:47:18 +0800 CST 2017-11-17 14:47:18 +0800 CST ln -s 和 mount --rbind 有什么区别? 772 有什么区别: ln -s /mnt/extra/home / 和 mkdir /home mount --rbind /mnt/extra/home /home symbolic-link 3 个回答 Voted Best Answer AlexP 2017-11-17T14:57:55+08:002017-11-17T14:57:55+08:00 mount --rbind进行递归绑定安装;也就是说,挂载的文件系统层次结构/mnt/extra/home也可以通过/home. ln -s在实践中,解决方案和解决方案之间的主要区别在于mount --rbindwithln -s /home是一个符号链接,而 withmount --rbind它是一个目录。这会影响find, df, test/[等工具。 此外,ln -s如果/home存在mount --rbind将失败,如果不存在则将失败,或者它不是空目录。 Mark 在下面的评论也很重要:ln -s需要一个可写的文件系统来创建符号链接。 thomasrutter 2017-11-17T15:11:28+08:002017-11-17T15:11:28+08:00 在这种情况下,绑定挂载和符号链接在大多数情况下的工作方式相似,但它们确实有重要区别。 符号链接更轻量级。您可以拥有成百上千个符号链接,而不会造成太大的管理问题。它们位于文件系统中,而不需要特殊的系统级设置。 符号链接可以通过 cp 和 rsync 等工具正确备份和复制。也就是说,这些工具可以识别和复制符号链接,确保在其他地方恢复时,链接会恢复并指向正确的目的地。默认情况下,它将全部“正确”工作。相比之下,在备份或复制绑定挂载时,挂载将被透明处理,导致文件本身被复制,如果您在其他位置也获得相同的文件,则可能导致重复,并且如果您需要额外的工作在目的地复制绑定挂载。 任何有权访问链接的用户都可以修改或删除符号链接,因此很容易将其设置为仅限超级用户,或向特定用户开放。绑定挂载只能由超级用户设置或修改。 如果这听起来像是对符号链接的热烈支持,那就是。它们是在文件和目录之间链接的更直接的方式。您只会在符号链接不起作用的情况下使用绑定挂载,这种情况可能比您想象的要少。大多数工具,包括备份和同步工具,对符号链接都有合理的默认行为,并且它们对符号链接的处理可能是可配置的。绑定挂载对此类工具是透明的,因此您失去了灵活性并可能失去明智的行为(例如,如上所述,备份中的目录重复)。 Ruslan 2017-11-18T04:57:50+08:002017-11-18T04:57:50+08:00 另一个区别是符号链接是符号链接,即它只引用一个路径——一串字符,并且每次打开目标路径中的子目录/文件时都会取消引用。相反,mount --rbind它的行为更像是一个硬链接,它的路径不会在每次取消引用时重新评估。 这在某些情况下会有所不同,例如chroot. 例如vsftpd chroot进入您登录的 FTP 用户帐户的主目录。因此,如果您将符号链接放入该目录,vsftpd将无法取消引用它,因此无法通过 FTP 访问目标。如果您改为这样做mount --rbind,那么vsftpd将访问该子树,就好像它真的在那里一样,就像您在那里硬链接一个文件时一样。
mount --rbind
进行递归绑定安装;也就是说,挂载的文件系统层次结构/mnt/extra/home
也可以通过/home
.ln -s
在实践中,解决方案和解决方案之间的主要区别在于mount --rbind
withln -s
/home
是一个符号链接,而 withmount --rbind
它是一个目录。这会影响find
,df
,test
/[
等工具。此外,
ln -s
如果/home
存在mount --rbind
将失败,如果不存在则将失败,或者它不是空目录。Mark 在下面的评论也很重要:
ln -s
需要一个可写的文件系统来创建符号链接。在这种情况下,绑定挂载和符号链接在大多数情况下的工作方式相似,但它们确实有重要区别。
符号链接更轻量级。您可以拥有成百上千个符号链接,而不会造成太大的管理问题。它们位于文件系统中,而不需要特殊的系统级设置。
符号链接可以通过 cp 和 rsync 等工具正确备份和复制。也就是说,这些工具可以识别和复制符号链接,确保在其他地方恢复时,链接会恢复并指向正确的目的地。默认情况下,它将全部“正确”工作。相比之下,在备份或复制绑定挂载时,挂载将被透明处理,导致文件本身被复制,如果您在其他位置也获得相同的文件,则可能导致重复,并且如果您需要额外的工作在目的地复制绑定挂载。
任何有权访问链接的用户都可以修改或删除符号链接,因此很容易将其设置为仅限超级用户,或向特定用户开放。绑定挂载只能由超级用户设置或修改。
如果这听起来像是对符号链接的热烈支持,那就是。它们是在文件和目录之间链接的更直接的方式。您只会在符号链接不起作用的情况下使用绑定挂载,这种情况可能比您想象的要少。大多数工具,包括备份和同步工具,对符号链接都有合理的默认行为,并且它们对符号链接的处理可能是可配置的。绑定挂载对此类工具是透明的,因此您失去了灵活性并可能失去明智的行为(例如,如上所述,备份中的目录重复)。
另一个区别是符号链接是符号链接,即它只引用一个路径——一串字符,并且每次打开目标路径中的子目录/文件时都会取消引用。相反,
mount --rbind
它的行为更像是一个硬链接,它的路径不会在每次取消引用时重新评估。这在某些情况下会有所不同,例如
chroot
. 例如vsftpdchroot
进入您登录的 FTP 用户帐户的主目录。因此,如果您将符号链接放入该目录,vsftpd
将无法取消引用它,因此无法通过 FTP 访问目标。如果您改为这样做mount --rbind
,那么vsftpd
将访问该子树,就好像它真的在那里一样,就像您在那里硬链接一个文件时一样。