linux下文件访问时间、修改时间、更改时间


基本概念:

linux对每个文件维护3个时间段(访问时间、修改时间、更改时间),它们的意义于图4-19中。


在linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间,但是不能依赖文件内容来判断文件是否被修改,举个例子,用vim打开文件,不做任何修改操作,执行保存退出,修改时间也会被改变成当前时间,而实际上文件内容并没有被改变。


注意,修改时间(st_mtim)和状态更改时间(st_ctim)之间的区别。修改时间是文件内容最后一次被修改的时间。状态更改时间是该文件的i节点最后一次被修改的时间,有很多影响到i节点的操作,如更改文件的访问权限、更改用户ID、更改链接数等。但它们并没有更改文件的事迹内容。因为i节点的所有信号都是与文件的实际内容分开存放的,所以,除了要记录文件数据修改时间以外,还需要记录状态更改时间,也就是更改i节点中信息的时间。

注意,系统并不维护队一个i节点的最后一次访问时间,所有access和stat函数并不更改这3个时间中的任一个。


系统管理员常常使用访问时间来删除在一定时间范围内没有访问过的文件,find(1)命令常被用来进行这种类型的操作。


我们可以用stat命令来查看文件的三个时间,如下文。


测试环境:

unubtu 14,这个为什么特别注明测试环境,是因为例子2在不同的系统可能有不同的表现。


例子1,修改文件的最后访问时间:



例子2,修改文件的最后修改时间:


注:细心的同学应该已经发现Change(更改时间)也随着改变了,这里不同的系统有差异。


例子3,修改文件的最后更改时间:



关于i节点的理解,推荐文章:理解inode


原文出自:http://blog.csdn.net/daiyudong2020/article/details/52357282


参考:《unix环境高级编程》·第三版

End;



阅读更多
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/daiyudong2020/article/details/52357282
上一篇IPC之Posix信号量详解
下一篇IPC(进程间通信)概述
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭