最近我开始了解mount --bind
命令,但有些东西我不能清楚地理解。假设我有一个磁盘分区,并使用此命令将其挂载到挂载点 /bkup。
sudo mount /dev/sdd1 /bkup
如果我想让 /home/bkup 目录显示为 ~/bkup,我可以这样做
sudo mount --bind /bkup ~/bkup
但它与
ln -s /bkup ~/bkup
有效?mount --bind
当我可以用命令做同样的事情时,我为什么要使用ln -s
?
最近我开始了解mount --bind
命令,但有些东西我不能清楚地理解。假设我有一个磁盘分区,并使用此命令将其挂载到挂载点 /bkup。
sudo mount /dev/sdd1 /bkup
如果我想让 /home/bkup 目录显示为 ~/bkup,我可以这样做
sudo mount --bind /bkup ~/bkup
但它与
ln -s /bkup ~/bkup
有效?mount --bind
当我可以用命令做同样的事情时,我为什么要使用ln -s
?
mount --bind
更像是一个目录的“硬链接”(好吧,你不能创建到目录的硬链接,但这是你能得到的最接近的),而符号链接是......嗯,一个符号链接。我自己发现了两种差异可能很重要的情况:
在 chroot 中运行一些服务。从 chroot 监狱内部到 chroot 监狱外部的符号链接不起作用,但
mount --bind
有效。通过网络共享一些目录。您不能共享符号链接,但可以共享安装在
mount --bind
.您还必须非常小心那些通过设计区分符号链接和实际目录的程序,例如
rsync
. 尝试rsync
在指向目录的符号链接上运行可能会给您带来完全不同于您预期的结果。