通过stat命令来理解ctime mtime atime三者之间的区别

时间:2022-07-22
本文章向大家介绍通过stat命令来理解ctime mtime atime三者之间的区别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

是不是对ctime,atime,mtime的含义不是很清楚,而经常混淆呢,下面通过stat的用法来介绍下这三者的区别。

关于stat的用法很简单,主要是用来显示文件或文件系统的状态信息(stat - display file or file system status

下面请看实例:

创建一个文件1.t

touch 1.t

查看他的状态信息

关注三个时间以及一个inode信息

我们试一下当修改1.t这个文件时会发生什么?

可以看到inode信息未发生变化,只有mtime和ctime发生了变化,atime没有发生变化,这个很好理解,因为我们没有读取该文件,那我们来读取一下

对比一下,atime发生了变化,好像是文件被读取了才变化!

如果我们给该文件增加可执行权限呢?

只有ctime发生了变化

那么我们删除文件里的内容呢?

atime,ctime和mtime都发生了变化,inode节点也发生了变化。

到这里是否对这三个time有所启发呢?atime是只有当文件被读取时才会发生改变,ctime是changetime,即发生改变时相应的ctime才会变化,例如权限,内容等,mtime则只有在inode节点保持不变的情况下,只要不删除文件,mtime就不会发生变化

那我们对文件名进行改名操作呢?

文件的inode没有发生变化,只有ctime发生了改变,因为文件名改变了,所以ctime也会改变!

最后我们在做一个软硬链连接看下

软连接没有变化

硬连接的ctime发生了变化

那么我们来总结下吧:

Access time(atime):是指取用文件的时间,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,都改变文件的Access time. Modify time(mtime):是指修改文件内容的时间,只要文件内容有改动或存盘的操作,就会改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time Change time(ctime):是指文件属性或文件位置改动的时间,如使用chmod,chown,mv指令集使用ln做文件的硬连接,就会改变文件的Change time.