为什么SOFT LINK不能指向,而HARD LINK却可以指向已删除的原始文件的INODE?

为什么SOFT LINK不能指向,而HARD LINK却可以指向已删除的原始文件的INODE?

首先,我创建了到单个文件 (A.DAT) 的硬链接 (HLINK) 和软链接 (SLINK)。据我所知,SLINK有自己的inode,这个inode会指向A.DAT的inode。但HLINK没有自己的inode。当我们创建硬链接时,它将直接指向 A.DAT 的 inode。

所以我的QS是当我们删除原始文件(A.DAT)时,由于硬链接(HLINK)的存在,A.DAT的inode仍然存在于内存中。但是为什么我们不能通过SLINK,虽然SLINK的inode指向内存中仍然存在的inode,而HLINK虽然指向同一个inode,但是可以访问。

请帮助我理解这一点,如果我错了请纠正我。

谢谢!!

答案1

SLINK有自己的inode,这个inode会指向A.DAT的inode。

不,它根本不引用索引节点。它指向 A.DAT 的名称。如果名称更改,引用就会中断。

这就是符号链接可以跨文件系统工作的原因。索引节点(或使用的任何数据结构)可能不可见,但名称可见。

相关内容