stat -c "%i" 命令可直接提取文件inode号,用于精准识别硬链接;所有指向同一数据块的硬链接具有相同inode号且同属一个文件系统,软链接则有独立inode,不适用此判断。

在 Linux 中,stat 命令配合 -c "%i" 格式可以快速提取文件的 inode 号,这是识别和排查硬链接关系最直接有效的方法——因为所有指向同一数据块的硬链接,其 inode 号完全相同。
理解 inode 与硬链接的本质关联
硬链接不是副本,而是对同一 inode 的多个目录项引用。只要两个(或多个)文件的 inode 号一致,且位于同一文件系统中,它们就是彼此的硬链接。注意:软链接(符号链接)有独立 inode,不适用此判断。
用 stat -c "%i" 获取指定文件的 inode 号
执行以下命令即可输出纯数字格式的 inode 号,便于比对或脚本处理:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
-
stat -c "%i" filename—— 显示单个文件的 inode 号(如 123456) -
stat -c "%n %i" file1 file2 file3—— 同时查看多个文件名及对应 inode,一目了然 -
ls -i filename也可查看 inode,但输出含文件名和空格,不如-c "%i"干净,不适合管道或脚本解析
批量查找某 inode 的所有硬链接路径
知道 inode 号后,可用 find 在对应文件系统中搜索全部硬链接:
-
find /path/to/search -xdev -inum 123456 -ls——-xdev确保不跨文件系统(硬链接无法跨设备) - 若不确定文件系统范围,先用
df -h filename查看所在挂载点,再限定find起始路径 - 注意:普通用户可能无权访问某些目录,加
2>/dev/null忽略权限错误(如find ... 2>/dev/null)
验证硬链接是否生效的小技巧
创建测试链接可加深理解:
echo "test" > original.txt-
ln original.txt hardlink.txt(不加-s即为硬链接) -
stat -c "%n %i" original.txt hardlink.txt→ 输出两行相同 inode 号 - 修改任一文件内容,另一方立即可见;删除其中一个,另一个仍保留数据(引用计数减 1,未归零即不释放)










