一、关于时间戳
每一个文件都有3中时间(称为时间戳timestamps),对这3种时间,很多时候容易混淆不清,因此 这里要说明下:
Access time(atime):是指取用文件的时间,所谓取用,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,均会改变文件的atime.
Modify time(mtime):是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的方式)或存盘的操作,就会改变文件的mtime,平常我们使用ls –l查看文件时,显示的时间就是mtime
Change time(ctime):是指文件属性或文件位置改动的时间,如使用chmod,chown,mv指令集使用ln做文件的硬是连接,就会改变文件的ctime.
Note:
如果修改文件(使用编辑器存盘或使用 >>转向操作),则mtime和ctime 会同步更新成mtime的时间,但atime不变。
如果执行touch文件,则3种时间全部改变
使用ln –s做文件的软式连接,会改变文件的atime取用时间
使用ls –la查看一般文件,不会更改这三种时间
stat命令可以获得文件的一些信息,比如时间戳,
参数有大小写之分。
%x: atime
%y: mtime
%z: ctime
[root@ansible] ~$ stat -c %Y mysql_install.sh
1550818618
[root@ansible] ~$ stat -c %y mysql_install.sh
2019-02-22 14:56:58.069277177 +0800