共计 1517 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 文件时间是文件的访问时间、修改时间、和改变时间。atime 在 Linux 的文件系统中被称为访问时间,当文件的内容被访问时,就会更新这个时间,mtime 指的是当“内容数据”被修改时,Linux 系统会去更新这个时间,ctime 是 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 是 Access Time 的简写,它在 Linux 的文件系统中被称为访问时间,当文件的内容被访问时,就会更新这个时间,例如我们使用 cat、more、less 等命令查看文件的内容时,文件的访问时间就会被更新,如下图:
mtime 是 Modification Time 的简写,它指的是当“内容数据”被修改时,Linux 系统会去更新这个时间,例如:我们用 echo,vim 等指令向文件写数据
在上图中,当我们用 echo 指令向 test.txt 文件中写入字符串时,我们发现 mtime 和下面我们要提到的 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 下的文件或者程序出现问题,我们可以通过查询这些时间来判断我们什么时候做了什么操作从而对这些文件产生了影响。