You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

/bin/ls与/usr/bin/ls inode相同但硬链接数为1的原因求解

理解偏差点

  • 你预设了/bin和/usr/bin是同一文件系统下两个独立的真实目录,只有满足这个前提时,两个路径下inode相同的文件才属于硬链接,硬链接计数才会叠加为2。
  • 你误将两次指向同一个文件的路径查询结果,当成了两个独立硬链接的属性。

现象原理

当前绝大多数Debian/Ubuntu系列发行版都默认启用了usrmerge(/usr目录合并)方案:
传统根目录下的/bin、/sbin、/lib等存放二进制、运行库的目录,现在都改为指向/usr目录下对应路径的软链接,部分场景也可能通过绑定挂载实现映射。
你可以执行ls -ld /bin验证,正常输出会和如下格式一致:

lrwxrwxrwx 1 root root 7 9月  1 2020 /bin -> usr/bin

此时你执行ls -li /bin/ls /usr/bin/ls时,系统会先做路径解析:
/bin/ls会先将软链接/bin解析为usr/bin,最终实际查询的目标就是/usr/bin/ls,相当于你给ls命令传入了两次完全相同的文件路径,自然会输出两次完全相同的属性,其中硬链接数为1符合预期,因为这个inode从始至终只对应1个真实的目录项,哈希值一致也只是因为两个路径指向的本来就是同一个文件。

验证方法

你可以执行如下命令查找该inode对应的所有真实路径:

find / -xdev -inum 8258848

返回结果只会有/usr/bin/ls这一个路径,进一步证明不存在额外的硬链接。

内容的提问来源于stack exchange,提问作者cmdEvo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:30:00