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会按照执行语句的时间进行更新
例子
更改时间戳
更改时间戳
查看文件时间属性的变化如下
查看文件时间属性的变化
echo 内容 >>文件 直接把文件追加到文件内容的底部,不打开文件,则atime不改变,mtime和ctime都变化。
vim 文件,打开文件进行编辑,则atime,mtime和ctime都变化。
如下截图
echo和vim的区别
查看时间,并不会每次更改access的时间,假设一个网站上的内容,访问量很大,用户每次访问都更改时间戳,对系统的负担就很低,所以默认这个时间是一天更新一次。如下例子,我多次查看了tt5这个文件,但是access time都不会发生变化
短暂时间间隔查看文件内容atime不变