正德厚生,臻于至善

文件的 ctime、mtime、atime 之间有什么区别?

atime:access time 显示的是文件中的数据最后被访问的时间,比如系统 的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本)
mtime:modify time 显示的是文件内容被修改的最后时间,比如用vi编辑 时就会被改变。(也就是Block的内容)
ctime:change time 显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变(即inode内容发生改变和Block内容发生改变时)

因此,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改 - 在权限更改,但是文件内容没有变化的情况下。
ls(1) 命令可用来列出文件的 atime、ctime 和 mtime。
ls -lu 或者 ls -l --time=atime 显示文件的atime
ls -lc 或者 ls -l --time=ctime 显示文件的ctime
ls -l  显示文件的mtime

使用的命令查看这三种时间:stat filename

在此说明:在创建文件之后修改过文件所以三个时间是不一样的,如果只是单纯地创建文件,那么它们三个应该是相等的。

扩展知识:另外,从kernel2.6.29开,还默认集成了一个relatime的属性。可能是因为在文件读操作很频繁的系统
中,atime更新所带来的开销很大,所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作,所以Linux就推出了一个relatime特性。
使用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。事实上,这个时候atime和mtime已经是同一个东西了。所以这个选项就是为了实现对atime的兼容才推出的。并不是一个新的时间属性。使用方法就是通过mount -o relatime /dir来挂装目录.
赞(0) 打赏
未经允许不得转载:徐万新之路 » 文件的 ctime、mtime、atime 之间有什么区别?

评论 抢沙发

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫

登录

找回密码

注册