你应该知道Linux的这三个文件时间
文件的三个时间
相信大家都已经很熟悉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 (最后修改时间)