博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ctime、mtime、atime
阅读量:6083 次
发布时间:2019-06-20

本文共 1191 字,大约阅读时间需要 3 分钟。

Linux系统文件有三个主要的时间属性,分别是ctime(change time, 而不是create time), atime(access time), mtime(modify time)。后来为了解决atime的性能问题,还引入了一个relatime的属性。

ctime:change time。最后一次文件或目录状态(原数据,即属性)改变的时间。

如:记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值


mtime:modify time。最后一次修改文件或目录的时间。

mtime和ctime的区别在于,只有修改了文件的内容,才会更新文件的mtime,而对文件更名,修改文件的属主等操作,只会更新ctime。

如: 对文件进行mv操作,mtime不变,ctime更新;编辑文件内容,mtime和ctime同时修改。其他操作的影响,可以自己试验。但是我发现对文件执行touch操作,会同时修改mtime和ctime,所以具体修改哪个时间,还取决于不同命令自己的实现。


atime:access time。最后一次访问文件或目录的时间。

如cat操作,而ls操作是不会更新的。


        对于文件:

    当修改mtime时,ctime必须随着改变.因为文件大小等都属性;有人说说atime也一定会改变,要想修改文件必须先访问;其实是不对的,不必访问文件就能修改其内容:如:#echo “This is a test !” >> /etc/issue,issue文件内容会变,但并没有访问文件,所以atime并没有改变.

     

    对于目录:

    访问一个目录其atime改变,mtime ,ctime不变;修改一个目录:在一个目录下touch一个文件,

mtime与ctime会改变,atime不一定会变;


可以通过stat来查看文件的mtime,ctime,atime等属性:stat filename

也可以通过ls命令来查看:

    ls -lc filename 列出文件的 ctime

    ls -lu filename 列出文件的 atime

    ls -l filename 列出文件的 mtime


从kernel2.6.29开,还默认集成了一个relatime的属性。这个功能我个人理解是为了解决atime的兼容性问题。因为在文件读操作很频繁的系统中,atime更新所带来的开销很大,所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作,所以Linux就推出了一个relatime特性。

      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1681776
,如需转载请自行联系原作者
你可能感兴趣的文章
java基础4
查看>>
patch 打补丁,和diff 生成制作补丁
查看>>
ios之UITextView
查看>>
ios之UITableView
查看>>
POJ2524 Ubiquitous Religions(并查集)
查看>>
写一个函数,实现去除字符串空格
查看>>
maven配置文件解析
查看>>
Quick-Cocos2d-x初学者游戏教程(四) --------------- 开发初探(添加背景,标题,动作,按钮)...
查看>>
「ubuntu」Ubuntu Recovery模式下只读问题
查看>>
使phongegap的程序纵向不滚动
查看>>
分布式文件系统HDFS 练习
查看>>
ElasticSearch之安装head插件
查看>>
mount命令详解
查看>>
Android四大组件应用系列——Activity与Service交互实现APK下载
查看>>
20145222黄亚奇《Java程序设计》第8周学习总结
查看>>
安装redis
查看>>
json.parse()和json.stringify()
查看>>
状态压缩DP SRM 667 Div1 OrderOfOperations 250
查看>>
简单几何(水)BestCoder Round #50 (div.2) 1002 Run
查看>>
Dockerfile Volume指令与docker -v的区别
查看>>