通过 stat 查看文件的 Change Time(ctime)即 inode 元数据最后一次修改时间,可用 stat 文件名 查看完整信息,stat -c '%z' 提取可读时间,stat -c '%W' 获取 Unix 时间戳;chmod、chown、ln、mv(同文件系统)、setfattr 等操作均会更新 ctime;ctime 非创建时间,不记录操作者,需 auditd 才能溯源。

要通过 stat 查看文件的 Change Time(ctime),本质是观察 inode 元数据最后一次被修改的时间点。这个时间与文件内容无关,只要文件的权限、所有者、链接数、扩展属性等任何 inode 级信息发生变化,ctime 就会更新——它真正反映的是 inode 本身的变动。
直接查看文件的 Change Time
运行以下命令即可显示完整时间字段:
-
stat 文件名—— 输出中找 Change: 行,例如Change: 2026-04-29 15:22:03.123456789 +0800 - 若只需提取 ctime 字符串,可用:
stat -c '%z' 文件名(%z 表示 change time,格式为人类可读) - 若需 Unix 时间戳格式便于脚本处理:
stat -c '%W' 文件名(输出秒级时间戳,注意:若文件无 ctime 则返回 0)
理解 ctime 和 inode 变动的对应关系
以下操作都会触发 ctime 更新,且 不改变 mtime 或 atime(除非同时满足条件):
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 修改权限:
chmod 600 file.txt - 变更所有者或所属组:
chown user:group file.txt - 创建硬链接:
ln file.txt link1(Links 数加 1,inode 不变但元数据更新) - 移动文件到同一文件系统内:
mv file.txt /path/newname(仅改目录项,inode 不变,但 parent 目录的 ctime 也会变) - 设置扩展属性:
setfattr -n user.note -v "backup" file.txt
用 ctime 辅助排查 inode 异常
当怀疑文件被意外修改元数据时,可结合 ctime 和其他字段交叉验证:
- 对比
stat file1 file2的 ctime,若相同且早于 mtime,说明二者可能经由同一操作(如批量 chmod)影响 - 检查 Links 字段是否突增——硬链接增多会更新 ctime,但不会改变文件内容
- 若 ctime 明显新于 mtime/atime,而你未执行过 chown/chmod/mv 等操作,需警惕自动化工具或脚本干预
注意 ctime 的局限性
ctime 不是“创建时间”,也不记录谁执行了变更:
- 它无法追溯操作者,Linux 内核不默认审计该信息;如需溯源,应启用 auditd 并配置规则监听 chmod/chown 等系统调用
- 某些挂载选项(如
noatime或relatime)会影响 atime,但 不影响 ctime 的准确性 - ext3 文件系统完全支持 ctime;ext4/btrfs/zfs 等也一致,无需额外启用

















