Linux 中文件的三种时间
文件的三种时间:
1、 mtime 文件的修改时间
- 文件的内容发生改变。包括文件中空格数目、字符的变动再复原等这些看上去并不影响有效数据内容的操作。
- 有意的改变时间戳。Eg:使用touch –m –t 2016666666666fileName这样的命令故意改变mtime。
2、 ctime 文件的改变时间
- 文件的“属性”改变。Eg:文件的权限、属主、属组等。
- mtime发生改变和人为的改变atime的情况,Eg:touch –a –t 20166666 fileName(注意:因为访问使得atime发生改变时,ctime是不会发生改变的)
一旦文件的mtime发生改变,文件的ctime也随着发生改变。
3、 atime 文件的访问时间
这个东东是非常不靠谱的,atime指的是文件的访问时间,按道理来说一旦文件被读取,那么此文件的atime就会发生改变,但是atime完全不是按道理来的,实际的情况是这样的:
- 只有atime落后于(等于)mtime或者ctime的时候,在读取文件的时候才会更新,否则就算你读到天荒地老,文件的atime也不会发生改变。
使用echo或者dd这样的命令改变了文件的内容后,只有mtime和ctime发生了改变,文件的atime是不会发生改变的,因为没有读取到原来文本的内容,但是在atime超前于(等于)mtime或者ctime的时候,cat|less|more查看了文件,此时的atime也没有发生变动啊?
4、 总结:
- ctime 可以记忆为文件属性改变时间,用户无法修改,还是比较靠谱的
- mtime在不故意修改的情况下,也可以准确的记录下最近文件的改变时间
- 想通过atime来查看最近的一次查看文件的时间是会被坑的,因为在atime超前于ctime和mtime(同时满足)的情况下,atime是不会改变的。
时间: 2024-12-16 17:17:54