atime是指access time,访问时间,即文件被读取或者执行的时间;
mtime即modify time,指文件内容被修改的时间;
ctime即change time文件状态改变时间。
操作 |
atime |
mtime |
ctime |
mv |
没变 |
没变 |
变了 |
cp |
变了 |
没变 |
没变 |
touch |
变了 |
变了 |
变了 |
cat/more/less |
变了 |
没变 |
没变 |
ls |
没变 |
没变 |
没变 |
chmod/chown |
没变 |
没变 |
变了 |
ln |
没变 |
没变 |
变了 |
echo |
没变 |
没变 |
没变 |
vi |
没变 |
变了 |
变了 |
注:1.cp后的目标文件是三个时间全变了;只变atime是指cp的源文件
2.cat/more/less在部分系统中也是不会改变atime的
3.如果是ln -s软链接,ctime是不会变的
查看atime,mtime,ctime用stat 文件名的方法
stat t.txt
也可以分别用下面的命令:
ls -lc test :查看test文件的ctime(change time)
ls -lu test :查看test文件的atime(access time)
ls -l test:查看test文件的mtime(modify time)
修改文件时间:touch
touch [-acdmt] 文件或目录
-a修改atime和ctime
-c 修改三个时间,如该文件不存在则不建立新文件
-m 仅修改mtime和ctime
-d 后面可以接修改时间,而不用目前日期,也可以使用--date="日期或时间"
-r 参考文件 变更文件:把指定的文件atime、mtime更设成和参考文件的相同值
-t 后面接需要更改的时间,格式为 [[CC]YY]MMDDhhmm[.SS]
操作 |
atime |
mtime |
ctime |
touch -a |
变了 |
没变 |
变了 |
touch -c |
变了 |
变了 |
变了 |
touch -m |
没变 |
变了 |
变了 |
touch -d |
变了 |
变了 |
没变 |
touch -r |
变了 |
变了 |
没变 |
touch -t |
变了 |
变了 |
没变 |
注:这三个标颜色的没变,是指日期不会更改,时间变更为当前时间
touch -a t.txt
touch -c t.txt
touch -m t.txt
touch -d修改的时候,虽然ctime的日期不会改变,但是时间是会变成当前时间的
touch -d "2 years ago" t.txt
touch -d "2021-03-21 18:00:05" t.txt
按照1.txt的时间来设置t.txt的时间, 修改的时候,虽然ctime的日期不会改变,但是时间是会变成当前时间的
touch -r 1.txt t.txt
Touch -t只能精确到秒,而且是要在小数点后。修改的时候,虽然ctime的日期不会改变,但是时间是会变成当前时间的
touch -t 201903201005.15 t.txt
比当前时间提前(0.05+1)*24小时以内(<=)
find -mtime 0.05
比当前时间提前1.05*24小时以内(<=)
find -mtime -1.05
比当前时间提前(0 +1)*24小时以上(>=)
find -mtime +0