> 文章列表 > 【Linux】文件时间-ACM

【Linux】文件时间-ACM

【Linux】文件时间-ACM

文章目录

文件时间-acm

我们可以使用stat 文件名的方式查看对应的文件的时间信息

Access

  • 表示文件最近一次被访问的时间

文件的访问 实际也就是文件的读取

实际操作中,文件的Access时间可能没有变化,这是因为在新的Linux内核中,Access时间不会被立即更新,而是经过一定的时间间隔,OS才会自动进行更新, 因为查看文件和读取文件是比较频繁的事情,如果频繁的去更新时间,就可能存在刷盘的问题,会让我们的Linux系统变得卡顿

Change

  • 表示最近一次修改文件属性的时间

例子:

【Linux】文件时间-ACM

Modify

  • 表示最近一次修改文件内容的时间

实际上,当我们修改文件内容的时候,有可能也会修改文件的属性->如:文件的大小,导致Modify实际和Change实际一起发生改变

当我们修改文件内容时,文件的大小一般也会随之改变,所以一般情况下Modify的改变会带动Change一起改变,但修改文件属性一般不会影响到文件内容,所以一般情况下Change的改变不会带动Modify的改变

【Linux】文件时间-ACM


问:Makefile怎么判定源文件是否被修改过呢? 从而知道系统的源文件是否需要重新编译,

【Linux】文件时间-ACM

就是通过对比 源文件和生成的可执行程序的Modify时间

【Linux】文件时间-ACM


结论: makefile和gcc会根据时间问题,来判定源文件和可执行程序谁更新,从而指导系统哪些源文件需要被重新编译


问:为什么 .PHONY定义的伪目标总是可以被执行

本质就是不关心时间谁先谁旧,直接编译


注意:当我们touch一个已经存在的文件,会更新文件时间(把3个时间都更新为现在时刻的时间,然后源文件的时间就比可执行程序更加新),这样即使内容没有任何修改,此时就可以重新编译了

【Linux】文件时间-ACM