概述

Unix文件系统中的文件或文件夹有三个时间戳,分别为atime、ctime和mtime。

atime表示最后一次访问(仅仅访问,没有改动)文件的时间;

mtime表示最后一次修改文件的时间;

ctime表示最后一次对文件属性改变的时间,包括权限、大小、属性等。

常用命令

ls –l 文件   默认查到到的时间默认是mtime

stat 文件  来查看文件的详细时间和属性信息

touch    更改文件的时间戳信息

常用参数

-a  change only the access time。会更改atime和ctime,atime修改为指定的时间,ctime则是更新为执行语句的时间,mtime不变

-m  change only the modification time,会更改mtime和ctime,mtime修改为指定的时间,ctime则是更新为执行语句的时间,atime不变

-t   STAMPuse [[CC]YY]MMDDhhmm[.ss] insteadof current time

--time=WORD,change thespecified time: WORD is access, atime, or use: equivalent to -a WORD ismodify or mtime: equivalent to –m

-c  注意是不创建不存在的文件,不是更改ctime.如果文件不存在,则不要进行创建.但是此时用-t指定时间时,则会更改atime和mtime,同时,ctime会按照执行语句的时间进行更新

例子

更改时间戳

1240

更改时间戳

查看文件时间属性的变化如下

1240

查看文件时间属性的变化

echo 内容 >>文件  直接把文件追加到文件内容的底部,不打开文件,则atime不改变,mtime和ctime都变化。

vim 文件,打开文件进行编辑,则atime,mtime和ctime都变化。

如下截图

1240

echo和vim的区别

查看时间,并不会每次更改access的时间,假设一个网站上的内容,访问量很大,用户每次访问都更改时间戳,对系统的负担就很低,所以默认这个时间是一天更新一次。如下例子,我多次查看了tt5这个文件,但是access time都不会发生变化

1240

短暂时间间隔查看文件内容atime不变