Linux文件atime ctime mtime

Linux文件atime ctime mtime

Linux文件一般来说都具有三个重要的时间

  • atime:access time
  • ctime: change time
  • mtime: modification time

atime很好理解,对文件的访问都会更改这个时间,ctime则是文件的内容或者属性更改的时间,而mtime是文件的内容被修改后,才会改变。


举个例子:

  1. 我们新建一个文件:

    此时三个时间应该是一致的。

    这里写图片描述

    有些文件系统会记录文件创建birthtime,不支持的文件系统在这一项上会显示-, stat命令可以查看文件相关的时间。

  2. 我们首先访问这个文件

    这里写图片描述
    我们观察到仅Access Time发生了变化。

  3. 我们修改该文件的属性,增加可执行权限。

    这里写图片描述
    我们观察到仅仅Change Time发生了变化,而Modify Time没有发生变化,是因为我们这里只是修改了文件的属性而非文件内容。

  4. 修改文件内容

    这里写图片描述
    我们观察到不仅仅Modify Time发生了变化,Change Time也发生了变化,这是因为Change Time的变化的原因包含文件内容发生改变。因此一般来讲:mtime <= ctime

  5. 我们常常需要利用文件的时间信息,做为find命令的条件来筛选出特定的文件,进而执行一些action,例如我们需要找出5天前创建的日志文件并删除。

    find -name "*.log" -ctime -5 -delete

    这里写图片描述

    注意我们这里使用的是ctime来代替文件创建的时间,因为日志文件通常是按照天来rolling的,每一天会生成一个新的文件,例如20180825.log的ctime只能是落在当天内。

posted @ 2018-08-25 12:12  Spground  阅读(185)  评论(0编辑  收藏  举报