概述
在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime。在Linux下无法获取到文件的创建时间,因为根本就没有保存这个时间。
如果文件创建之后没有被修改过内容,那么mtime就是创建时间;如果文件创建之后没有被获取过内容,那么atime就是创建时间;如果文件创建之后没有改变过状态,那么ctime就是创建时间。但是,但是,但是实际情况下以上的如果是不可能存在的。所以想要直接获取文件的创建时间是几乎不可能的。
查看文件的三个时间
使用stat命令
可以使用stat命令查看文件的三个时间,其中Access指最后访问时间;Modify指最后修改时间;Change指最后状态改变时间。
使用ls命令
ls -l 默认显示文件的Mtime
ls -lc 显示文件的Ctime
ls -lu 显示文件的Atime
命令运行情况如下图所示:
三个时间何时变化
- 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下文件的创建时间、访问时间、修改时间和改变时间