通过stat命令可知,Linux文件和目录有3个时间属性,它们分别是:
Access: 最后一次访问的时间
Modify: 最后一次修改文件内容的时间
Change: 最后一次修改文件属性(权限、大小、拥有者、内容)的时间
验证步骤:
1、新建一个新文件(> time)
2、查看文件属性 (stat time || grep time)
Access: 2017-09-26 19:28:01.441921854 +0800
Modify: 2017-09-26 19:28:01.441921854 +0800
Change: 2017-09-26 19:28:01.441921854 +0800
-rw-r--r-- 1 root root 0 Sep 26 19:28 time
此时由于3个时间都相等,我们无法进行区分
3、由Access、Modify、Change三个单词的字面意思可知,Access是读取,Modify、Change都有修改的意思,所以有歧义的是Modify、Change两个时间,我们先来验证Access时间好了
读取但不修改文件(cat time)
查看文件属性(stat time || grep time)
Access: 2017-09-26 19:32:59.382035205 +0800
Modify: 2017-09-26 19:28:01.441921854 +0800
Change: 2017-09-26 19:28:01.441921854 +0800
-rw-r--r-- 1 root root 0 Sep 26 19:28 time
说明Access time就是文件最后一次读取的时间
ll的时间未改变,说明ll读取的文件时间不是Change Time
4、对文件进行权限修改(chmod 664 time)
查看文件属性(stat time 、ll | grep time)
Access: 2017-09-26 19:28:01.441921854 +0800
Modify: 2017-09-26 19:28:01.441921854 +0800
Change: 2017-09-26 19:35:05.491354697 +0800
-rw-rw-r-- 1 root root 0 Sep 26 19:28 time
Change时间发生改变,说明改变文件读取权限会更新Change Time
ll查看文件权限已改变,但是时间未改变,说明ll读取的文件时间不是Change Time
5、对文件进行拥有者修改(chown li time)
查看文件属性(stat time、ll | grep time)
Access: 2017-09-26 19:28:01.441921854 +0800
Modify: 2017-09-26 19:28:01.441921854 +0800
Change: 2017-09-26 19:39:39.480926898 +0800
-rw-rw-r-- 1 li li 0 Sep 26 19:28 time
Change时间发生改变,说明改变文件拥有者会更新Change Time
ll查看文件拥有者已改变,但是时间未改变,说明ll读取的文件时间不是Change Time
6、对文件进行内容的修改(vi time ...)
查看文件属性(stat time、ll | grep time)
Access: 2017-09-26 19:48:10.118858933 +0800
Modify: 2017-09-26 19:48:13.781879964 +0800
Change: 2017-09-26 19:48:13.783879975 +0800
-rw-rw-r-- 1 li li 2 Sep 26 19:48 time
三个时间都发生变化,说明改变文件内容会同时影响 Access、Modify、Change三个时间,通过4、5、6步骤的对比,chmod、chown操作会改变 Change time,文件内容修改会改变Modify time 和 Change time,ll时间也发生了变化,说明ll的时间正是Modify time,即文件最后一次被修改的时间
作者:Lee_DH
链接:https://www.jianshu.com/p/7e212601bdea