发布于2026-08-17 阅读(0)
扫一扫,手机访问
ls -i 胜在够快、够轻,只会直接给出编号;真要看完整的 inode 元数据,还得用 stat,比如硬链接数、时间戳这类信息都要靠它来拿。至于 find -inum,更适合拿来反向查路径。还有一个细节很关键:如果看到 Links:0,通常说明文件虽然已经被删除,但占用的空间还没真正释放,这时候就需要配合 lsof +L1 一起定位。

ls -i,它最快、最轻量,适合一眼确认编号;但只靠它容易漏关键信息——比如硬链接数为 0 的文件,ls -i 不会告诉你它已被删除却仍在被进程占用。
ls -i 快速查单个文件 inode 号这是最常用也最容易上手的方式,不依赖额外参数,输出即见编号:
ls -i test.c → 输出形如 123456 test.c,左边数字就是 inode 号ls -i 然后扫一眼数字就走——没带文件名时,你看到的只是 inode 号列表,无法对应到具体文件,极易误判ls -li,inode 号会固定在最左列,后面紧跟权限、所有者、大小等字段ls -i /var/log;若路径含空格或特殊字符,ls -i 仍安全,不用额外转义stat 查真实元数据,不只看编号stat 才是真正能够直接读取磁盘 inode 表原始结构的命令;ls -i 充其量只是把目录项做了个解析,像那些“文件已经删了但空间还没释放”、硬链接计数,以及更细的时间戳信息,它其实都看不出来。
stat /etc/hosts 默认输出冗长,重点盯住 Inode: 和 Links: 字段;Links: 0 意味着文件已被 unlink(),但仍有进程打开着,空间不会释放stat -c "%i %h %y" /tmp/file,%i 是 inode 号,%h 是硬链接数,%y 是 mtime(ISO 格式)atime 常不更新:多数系统挂载时启用了 relatime,普通 cat 不触发刷新;mtime 才反映内容是否真被改过,ctime 则只要 chmod/chown/重命名就变——它不是“创建时间”find -inum 反查路径,特别是硬链接或已删文件当你从 lsof +L1 或 stat 输出里拿到一个 inode 号,想定位它在哪几个路径下存在,就得靠 find:
find / -inum 1234567 2>/dev/null → 递归搜索根目录,2>/dev/null 抑制权限错误干扰/proc/PID/fd/ 下可见-inum 在 ext4/XFS 上可靠,但在 NFSv3 等网络文件系统上可能失效,因为服务端做了 inode 映射转换df -i 和 stat -f 才管总量inode 耗尽和磁盘空间满是两回事,df -h 看不出问题,得单独查 inode 使用率:
df -i 给的是四舍五入后的百分比,小分区(比如 /boot)总共才几万个 inode,100% 很快就到;更准的是 stat -f /,看输出里的 Inodes: 和 Inodes Free: 差值stat -f 和 stat -L 互斥:加 -L 会解析符号链接目标,加 -f 是查文件系统,两个一起用会报错Inodes Free:,XFS 可能写 free inodes),但数值含义一致Links: 0 的文件还在哪个进程里开着,那个高频出现的 inode 号是不是一堆日志硬链接堆出来的,或者 df -i 显示 98% 时你得立刻判断是真耗尽还是某目录下塞了几十万小文件。这些没法靠一条命令解决,得连着看、比着看、带着上下文看。 上一篇:如何在Linux中配置完整性扫描
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9