ln -s vs mount --bind

Modified on: Fri, 11 Oct 2019 17:40:02 +0800

使用ln -smount --bind之间有什么实际区别吗?

我想将一些文件夹移动到另一个分区,而不更改其守护程序设置,并想知道我应采取什么方法。

我更喜欢ln -s,因为它需要最少的设置(没有/etc/fstab修改),但也许有一个原因让它不常见?

最佳答案

天哪。如果您执行ln -s,您将创建一个符号链接,这是一个inode指向某个文件系统对象,这就是符号链接可以遍历文件系统和硬链接的原因:硬链接没有自己的inode。

如果使用--bind挂载文件系统,则为设备或文件系统创建第二个挂载点

如果您将符号链接设想为重定向,则设想将--bind挂载的文件系统创建为另一个数据网关。

符号链接和绑定坐骑是一个完全不同的球赛。

--bind mount对我来说似乎更健壮,它可能比使用符号链接快一点。另一方面,使用符号链接没有严重的缺点,因为性能命中率很小(如果存在的话)。

编辑:我一直在考虑这个问题,而且效果可能会比我原先想象的要大一些。如果您的应用程序读取了许多不同的文件,那么每个打开的新文件都需要额外的读取。一些研究这里表明我的假设是正确的,所以如果你有一个IO重的应用程序在那里运行,考虑将--bind选项挂载到符号链接解决方案之上。

它不常见的原因可能是符号链接在ls中可见,而绑定挂载仅在查看/ proc / mounts或/ etc / mtab时可见(这是mount命令的作用,如果没有参数则执行)。除此之外,我认为没有任何问题。不过,如果有,我会感兴趣的。

添加ln -s的另一个问题是,对于某些应用程序,当路径被取消引用时,如果它“预期”确定,它可能会导致应用程序无效物品在特定的地方。

作者:warren,wzzrd

相关问答

添加新评论