![在同一文件系统中进行硬链接时,跨设备链接无效](https://linux22.com/image/48911/%E5%9C%A8%E5%90%8C%E4%B8%80%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%AD%E8%BF%9B%E8%A1%8C%E7%A1%AC%E9%93%BE%E6%8E%A5%E6%97%B6%EF%BC%8C%E8%B7%A8%E8%AE%BE%E5%A4%87%E9%93%BE%E6%8E%A5%E6%97%A0%E6%95%88.png)
我有/home/myuser/Desktop/rc/.netrc我想要硬链接到的文件/根,即主目录根用户。当我做:
ln /home/user/Destkop/rc/.netrc /root
它给出以下错误:
ln: 创建硬链接
/root/.netrc' =>
.netrc': 无效的跨设备链接
但当我将文件硬链接到时它会起作用我的用户的家,即/home/我的用户。
那么,问题出在哪里,为什么这里只有一个文件系统时却说跨设备无效呢?
附言。我在用RHEL6
答案1
您的目录很可能/home
与该目录不在同一分区上/root
。
您可以轻松地检查这一点,因为cat /etc/fstab
硬链接不能在不同分区之间创建,只有符号链接可以。
答案2
在我看来,最好的方法不是使用硬链接,而是使用符号链接。你会发现它不再那么麻烦,而且一切都很好。如果您没有意识到硬链接有一些有趣的问题。
查看man ln
并签出该-s
选项!
通常请使用符号链接而不是硬链接。
答案3
如果复制到/自的源文件夹或目标文件夹是 fscrypt 加密文件夹,也可能会发生此错误。
在同一个 fscrypt 加密文件夹内(即,源和目标都在同一个 fscrypt 加密文件夹或其任何子目录中),硬链接应该正常工作。
答案4
可能早些时候,符号链接文件夹已被源上的真实目标文件夹替换。现在你的备份脚本失败了。