您的位置:首页 > 运维架构 > Linux

LINUX下三个时间点--atime,ctime,mtime解析

2016-12-24 22:13 253 查看
在linux下使用stat命令可以详细查看一个文件的相关属性,今天就其中的三个时间点属性(atime,ctime,mtime)来重点详谈!

先来解释这三个与文件有关的时间点属性: 

Access time(atime):access
time是文档最后一次被读取的时间。因此阅读一个文档会更新它的access时间,但它的modify时间和change时间并    没有变化。cat、more 、less、grep、tail、head、vi、vim、nano、touch这些命令都会修改文件的acces间。 

Modifiy time(mtime):Modifiy
time是文件内容被修改的时间,文件本身的内容被修改,这个时间就会被修改

Change time( ctime):change
time是文档的索引节点(inode)发生了改变,(通过chmod、chown命令修改一次文件属性)。(比如文件更名、写入文件、位置、用户属性、组属性、权限值、内容、链接设置等随
Inode 的内容更改而更改的)

附图如下:



通过touch命令新建文件ftime ,再利用stat命令查看文件详细信息 箭头所指就是我们所说的三个时间点。通过cat命令查看文件内容,可以发现只有Access(Access
time)发生了变化,而其他的两个时间点均未发生变化。因为cat是访问文件内容,这个时间点记录的最后一次访问时间。





用chmod(修改文件权限命令)改变文件的权限 ,可以发现Change(Change
time)改变了,而其它两个均没有变化,因为我们改变了文件状态--权限,这个时间点记录的是inode索引点(记录文件属性-权限,位置等)。





那么ls所显示的时间是什么呢?此时用ls -l 查看文件可以发现,显示时间是创建文件时间,也是到目前为止,没有被改变的时间。那就是Modifiy time(mtime)。因为还没有修改文件内容,所有这个时间没改变



4

使用vim编辑器来改写ftime的内容,可以发现三个时间都发生了变化。--分析原因:更改文件的内容即会更改 mtime 和 ctime,(但是文件的 ctime 可能会在 mtime 未发生任何变化时更改 - 在权限更改,但是文件内容没有变化的情况下)Ctime改变原因必然是访问了该文件,所以Access时间会发生改变,Change发生改变的原因---改写了文件内容那么此文件的inode结点所存储的文件信息必然发生改变,所以这个时间发生了改变。





而touch命令可以改变文件的时间,具体内容可以用man命令查看touch的帮助文档,如下图:可以发现它的作用除了新建文件外还可以-----将每个文件的访问时间和修改时间改为当前时间。



用touch命令修改ftime文件,因为ftime已经创建了,那么此时将更新文件时间为当前时间:可以发现三个时间都发生了改变。



当然也可以通过修改touch命令的参数来修改文件时间比如-m -t选项:可以发现通过-t改变了atime和mtime时间,ctime时间并没有变化。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 三种时间点