Linux文件atime ctime mtime
Linux文件atime ctime mtime
Linux文件一般来说都具有三个重要的时间
- atime:access time
- ctime: change time
- mtime: modification time
atime很好理解,对文件的访问都会更改这个时间,ctime则是文件的内容或者属性更改的时间,而mtime是文件的内容被修改后,才会改变。
举个例子:
我们新建一个文件:
此时三个时间应该是一致的。
有些文件系统会记录文件创建birthtime,不支持的文件系统在这一项上会显示-, stat命令可以查看文件相关的时间。
我们首先访问这个文件
我们观察到仅Access Time发生了变化。我们修改该文件的属性,增加可执行权限。
我们观察到仅仅Change Time发生了变化,而Modify Time没有发生变化,是因为我们这里只是修改了文件的属性而非文件内容。修改文件内容
我们观察到不仅仅Modify Time发生了变化,Change Time也发生了变化,这是因为Change Time的变化的原因包含文件内容发生改变。因此一般来讲:mtime <= ctime
。我们常常需要利用文件的时间信息,做为
find
命令的条件来筛选出特定的文件,进而执行一些action
,例如我们需要找出5天前创建的日志文件并删除。find -name "*.log" -ctime -5 -delete
注意我们这里使用的是ctime来代替文件创建的时间,因为日志文件通常是按照天来rolling的,每一天会生成一个新的文件,例如20180825.log的ctime只能是落在当天内。