关于Linux文件的ctime、atime和mtime等几个时间的介绍,推荐《Linux的3个文件时间》比较不错,这篇文章已经介绍的比较全面了,但是本文对它做进一步的解释,并对一些情况进行了验证和总结。
* ctime
补充说明
网上很多地方叫它create time,是错的,正确的名字应该是change time,修改时间。下面就对ctime做了些测试。
首先,我们创建一个新文件,并看看它的ctime情况。
文件刚创建时,a、m、c三个时间相同。
再重复执行一次前面的echo命令,
ctime、mtime都修改了。
只修改mtime属性,用touch修改。
ctime和mtime又变成一样了。
用vim修改并替换其中一个字符,不要让文件大小改变,看看ctime会变吗?
三个时间都变了,且相同。
用vim打开,什么也不改,然后按:q退出,看mtime变么?
只有atime变了。
只修改文件的执行权限属性:
只有ctime变了。
atime、ctime、mtime的行为总结:
atime 对应文件的read操作,有read操作发生,则atime变化;
ctime对应文件的writie操作,有write操作发生,则ctime变化;
ctime对应文件的all change操作,all表示不仅文件的内容变化,还有文件的所有属性发生变化,都引发ctime更新。而atime和ctime仅记录对文件内容发生操作行为的时间。
扩展
显示文件属性的命令
stat
ls -l filename 显示mtime
ls -lu filename 显示atime
ls -lc filename 显示ctime
修改文件属性的命令
touch
chmod
user
group
发生文件读操作的命令
cat
more
head
less
tail
发生文件写操作的命令
> 或>> 重定向命令
发生读写操作的命令
各类编辑器vi、vim、emacs,且只有改了情况下才有写发生。