Linux下文件的mtime/atime/ctime研究

概述

在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime。在Linux下无法获取到文件的创建时间,因为根本就没有保存这个时间。

如果文件创建之后没有被修改过内容,那么mtime就是创建时间;如果文件创建之后没有被获取过内容,那么atime就是创建时间;如果文件创建之后没有改变过状态,那么ctime就是创建时间。但是,但是,但是实际情况下以上的如果是不可能存在的。所以想要直接获取文件的创建时间是几乎不可能的。

查看文件的三个时间

使用stat命令

可以使用stat命令查看文件的三个时间,其中Access指最后访问时间;Modify指最后修改时间;Change指最后状态改变时间。

使用ls命令

ls -l 默认显示文件的Mtime

ls -lc 显示文件的Ctime

ls -lu 显示文件的Atime

命令运行情况如下图所示:

Linux下文件的mtime/atime/ctime研究

三个时间何时变化

  • Mtime (modification time ):在写入文件时随文件内容的更改而更改的时间。我们用ls -l看到的时间,就是mtime
  • Ctime (status time):是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的时间。相当于ls -l –time=ctime所看到的时间
  • Atime (access time):读取文件或者执行文件时更改的时间。也就是用ls -l –time=atime看到的时间

注意:关于Atime,在Linux内核为2.6.30之前是严格变化的。但是2.6.30之后出于性能考虑做了一定的改变,Atime不是每次访问文件时都一定改变,具体情况请参考:文件atime未变问题的研究

根据文件的三个时间排序文件夹中的文件

ls -lt 默认按文件的Mtime排序

ls -ltc 按文件的Ctime排序

ls -ltu 按文件的Atime排序

以上三个命令之后都可以加上r表示倒序排列

使用touch命令修改文件时间

请参考:linux 下查看文件修改时间 等

linux touch 与 linux文件ctime、atime、mtime

linux下文件的创建时间、访问时间、修改时间和改变时间

上一篇:mac电脑如何快速显示桌面及切换应用


下一篇:Java之List排序