Linux中显示文件属性的指令是 stat 文件名
我们所说的ACM时间就是这里的Access、Modify、Change
下面就依次介绍这三种时间
目录
4、Makefile中的'xxx' is up to date
1、Access:最近一次访问文件的时间
无论是读取文件内容,还是修改文件内容或者属性,Access都会发生变化
修改文件内容或者修改文件属性的时候,Access的时间会立即更新;但是读取文件或者查看文件的操作,不会立即更新
我们读取文件或者查看文件,如cat、find等操作,这些都属于高频操作,如果我们频繁使用这些命令,可能会频繁更新Access时间,导致Linux的处理速度下降
在较新的Linux内核中,这个问题被优化了,对文件进行读操作以后,Access时间不会立即更新,经过一定的时间间隔,OS才会自动进行更新时间
2、Modify:最近一次修改文件内容的时间
只要是修改文件内容,Modify的时间都会被更新,这个被视为低频操作,所以一般修改文件内容以后,会立即刷新
但是修改文件内容,有可能会顺带着修改文件属性,比如新增内容会改变文件大小(文件大小属于文件属性)
3、Change:最近一次修改文件属性的时间
修改文件属性也被视为低频操作,修改文件属性会立即更新Change的时间
只是单纯的修改文件属性,不会影响到Modify的时间
4、Makefile中的'xxx' is up to date
在使用Makefile编译文件时,我们经常会看到下面这种情况, 这是源文件 test.c 和 执行文件 test 的ACM时间导致的
执行文件test 都是在 源文件test.c之后创建的,所以 test 的ACM的时间要更新一点
如果test 的时间 比 test.c更新,那就说明test.c 没有被修改,就不需要重新编译,这个时候就会出现 'xxx' is up to date