![关于ln命令:跨设备情况](https://linux22.com/image/192178/%E5%85%B3%E4%BA%8Eln%E5%91%BD%E4%BB%A4%EF%BC%9A%E8%B7%A8%E8%AE%BE%E5%A4%87%E6%83%85%E5%86%B5.png)
在openSUSE 风滚草 20210606带内核GNU/Linux 5.12.9-1-默认
/cust
我尝试从到建立文件的硬链接~/backup
:
df /cust && df ~/backup && ln -P /cust/customization.tar ~/backup/
并得到带有错误消息的结果:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 706523136 158883972 546393196 23% /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 706523136 158883972 546393196 23% /home
ln: failed to create hard link '/home/luli/backup/customization.tar' => '/cust/customization.tar': Invalid cross-device link
为什么说从/dev/sda3
到/dev/sda3
是cross-device
?我在哪里可以获得更多详细信息?
谢谢。
答案1
ln
没有选项会创建一个硬链接,如文档所示在手册页中link
,特别是解释错误 EXDEV 的部分,其中包含备注
link() 不能跨不同的挂载点工作,即使两个挂载点上挂载了相同的文件系统
尽管我意识到下面的段落没有解决问题,但我不会将其从我的答案中删除。它可能对某些读者仍然有用。
硬链接指向同一文件系统中的索引节点号,因此不能跨文件系统创建。您可以使用符号链接(-s 选项)。