Dus*_*yte 12 stat timestamps files
在 Linux(目前使用 ext4 文件系统)中,如何在不读取任何内容的情况下快速检查文件的内容是否已被修改?
该stat
命令是推荐的方法吗?我目前做
$ stat --format "%Y" hello.txt
Run Code Online (Sandbox Code Playgroud)
稍后我可以检查相同的命令是否产生相同的输出。如果是这样,我的结论是 hello.txt 没有改变。
我的感觉是,人们想要投入更多参数以更加确定。例如,添加文件大小、文件名等是否会提供更好的文件“指纹”?
在这个话题上,我记得我曾经拥有的一个 TrueCrypt 卷总是被我的增量备份程序忽略,可能是因为 TrueCrypt 确保不会留下任何元数据更改。我想确实可以更改由 返回的所有数据stat
,因此不能保证对文件的所有可能修改都进行修改?
如果要检测文件是否已通过正常方式修改(在某些应用程序中编辑它、从修订控制系统检出新版本、重建它等),请检查其修改时间 (mtime) 是否已从最后检查。stat -c %Y
报道是这样的。
修改时间可以通过touch
命令设置。如果要检测文件是否以任何方式更改(包括使用touch
、提取存档等),请检查其 inode 更改时间 ( ctime ) 是否比上次检查更改。stat -c %Z
报道是这样的。ctime 不能被系统管理员欺骗(即使这样,也只能通过间接方式:通过更改系统时钟,或通过直接访问磁盘,绕过文件系统)。