在同一文件系统中进行硬链接时,无效的跨设备链接


14

我有/home/myuser/Desktop/rc/.netrc文件,我想硬链接到/ root,即root用户的主目录。当我做:

ln /home/user/Destkop/rc/.netrc /root

它给出以下错误:

ln:创建硬链接/root/.netrc' =>.netrc':无效的跨设备链接

但是当我将文件硬链接到myuser的主目录(即/ home / myuser)时,它可以工作

那么,有什么问题,为什么这里只有一个文件系统时却显示无效的跨设备?

PS。我正在使用RHEL6


顺便说一句,我的.netrc权限是600,应该是
Elvin Aslanov

1
您确定两个目录在同一文件系统上吗?跑mount | column -t一下看看。或者,运行mountpoint -d /mountpoint -d /homemountpoint -d user,和mountpoint -d /root。您应该获得... is not a mountpoint最后三个。

2
请不要在多个StackExchange网站上交叉发布

@EvanTeitelman真正的样子不是mount | column -t但是column -t < /proc/mounts
Hauke Laging 2013年

1
@HaukeLaging:你是对的。/proc/mounts比更有可能显示系统上的所有安装/etc/mtab,这是mount从中获取其信息的位置。不过,值得注意的是,在许多现代系统,/etc/mtab并且/proc/mounts都连接到/proc/self/mounts

Answers:


8

您最有可能 /home目录目录不在同一分区上/root

您可以使用cat /etc/fstab 无法在不同分区之间创建的硬链接轻松地进行检查,只有符号链接可以创建。


4

在我看来,最好的方法不是使用HARD链接,而是使用符号链接。您会发现它几乎没有麻烦,并且一切正常。如果您不了解,硬链接会有一些有趣的问题。

查看man ln并签出该-s选项!

通常,请使用符号链接而不是HARD链接。


9
尽管它可以解决问题,但并不能真正解释为什么会这样。
Bex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.