文件的三个时间
相信大家都已经很熟悉windows操作系统了,当我们在windows系统下创建一个文件时,系统同时会为这个文件建立相关的参数去描述这个文件,如图:
这些参数包括文件的大小,文件类型,位置,,以及创建、修改、访问这三个文件时间。那么我们看看再Linux系统下是否会有相似的参数呢?
在Linux下,我们可以用stat+文件名查看文件的相关参数,具体参数解释如下图:
在Linux中的文件系统下,我们发现除了文件的大小,文件名,文件时间等,还多了Inode号和block的相关信息,这主要和Linux文件系统的构成有关,在Linux下一个文件具有一个Inode号,一个Inode号对应着至少一个block块,bolck是访问文件内容的结构,文件block块的个数和文件的大小有关,并且在Linux系统下,block块的大小是固定的。今天我们主要介绍一下Linux系统下的三个时间,他们分别是
Access Time(访问时间)、Modify Time(修改时间)、Change Time(改变时间)。
atime
atime是Access Time的简写,它在Linux的文件系统中被称为访问时间,当文件的内容被访问时,就会更新这个时间,例如我们使用cat、more、less等命令查看文件的内容时,文件的访问时间就会被更新,如下图:
mtime
mtime是Modification Time的简写,它指的是当“内容数据”被修改时,Linux系统会去更新这个时间,例如:我们用echo,vim等指令向文件写数据
在上图中,当我们用echo指令向test.txt文件中写入字符串时,我们发现mtime和下面我们要提到的ctime都被改了,先让我们进入下面的ctime中去看看为什么会产生这样的结果把!
ctime
ctime是Linux系统中的status time,即状态时间,当文件的状态即文件的属性被改变是就会更改这个时间,例如文件系统中的links(链接数),size(文件的大小)、文件的权限、blocks(文件的block数);当这些参数被改变时,Linux就会更改该文件所对应的这个时间参数。
现在你可能会明白刚才修改文件的mtime时为什么文件的ctime也会跟着被改变了吧,因为当文件的内容被修改,文件的大小即size是一定会发生改变的,所以文件的状态时间会随着文件的内容被修改从而被更新。所以说文件的mtime被修改,该文件的ctime也会被改变。
查看文件时间的其他方式
1.ls -l +–time=xx时间+文件名;
该种查询方法默认情况下显示的是文件的mtime.
2.ls -lx +文件名
这种查询方式中
c<—->ctime
u<—->atime
ls -lc filename 列出文件的 ctime (***更改时间)
ls -lu filename 列出文件的 atime(***存取时间)
ls -l filename 列出文件的 mtime (***修改时间)
总结
三个文件时间记录了Linux文件系统下的文件被访问,修改,以及改变的时间,当Linux下的文件或者程序出现问题,我们可以通过查询这些时间来判断我们什么时候做了什么操作从而对这些文件产生了影响。