AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 977225
Accepted
NerdOfLinux
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 3 个回答
  • 8950 Views

3 个回答

  • Voted
  1. 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需要一个可写的文件系统来创建符号链接。

    • 15
  2. thomasrutter
    2017-11-17T15:11:28+08:002017-11-17T15:11:28+08:00

    在这种情况下,绑定挂载和符号链接在大多数情况下的工作方式相似,但它们确实有重要区别。

    符号链接更轻量级。您可以拥有成百上千个符号链接,而不会造成太大的管理问题。它们位于文件系统中,而不需要特殊的系统级设置。

    符号链接可以通过 cp 和 rsync 等工具正确备份和复制。也就是说,这些工具可以识别和复制符号链接,确保在其他地方恢复时,链接会恢复并指向正确的目的地。默认情况下,它将全部“正确”工作。相比之下,在备份或复制绑定挂载时,挂载将被透明处理,导致文件本身被复制,如果您在其他位置也获得相同的文件,则可能导致重复,并且如果您需要额外的工作在目的地复制绑定挂载。

    任何有权访问链接的用户都可以修改或删除符号链接,因此很容易将其设置为仅限超级用户,或向特定用户开放。绑定挂载只能由超级用户设置或修改。

    如果这听起来像是对符号链接的热烈支持,那就是。它们是在文件和目录之间链接的更直接的方式。您只会在符号链接不起作用的情况下使用绑定挂载,这种情况可能比您想象的要少。大多数工具,包括备份和同步工具,对符号链接都有合理的默认行为,并且它们对符号链接的处理可能是可配置的。绑定挂载对此类工具是透明的,因此您失去了灵活性并可能失去明智的行为(例如,如上所述,备份中的目录重复)。

    • 8
  3. 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将访问该子树,就好像它真的在那里一样,就像您在那里硬链接一个文件时一样。

    • 0

相关问题

  • unlik后与硬链接有什么不同的符号链接?

  • 如何创建一个别名,以便当我输入“kt”时它执行“killall gnome-terminal”?

  • 如何找到菊花链符号链接的最终目标?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve