A C M time
提到ACM我们会想到:ACM程序设计大赛。不过这里的ACM,都指的是时间。下面看一下他们的概念:
- atime access time :访问时间,文件被读取或执行时会改变
- mtime modify time :修改时间,文件本身内容被修改时会改变
- ctime change time :更改时间,文件的属性被修改时会改变,如修改文件的权限,文件属组,+ia属性等等。
一般mtime改变了ctime就会同时改变(inode更改相关)。注意ctime,ctime不是 create time 创建时 间 , linux 不
像windows下会保留文件被创建的时间,所以一个文件被修改后它的创建时间就没有了。
stat 文件名:当我们执行这样一条命令的时候,会出现:
那么,这三个时间的区别都是什么呢?
(1)Access是指“访问时间”
对于文件来说,当我们用编辑器打开file,或使用cat more less grep sed 等等命令读取文件内容,以及使用file cp命令操作文件,或执行可执行文件时,Access时间会被更新,空文件也不例外。
对于目录来说,只进入目录不会更新其Access时间,但是通过ls查看目录内容时,Access时间就会更新。使用ls -lu查看文件时,会显示出来文件的Access时间。
(2)Modify是指“更改时间”
当更改一个文件的内容时,此文件的modify时间记录会被更新。Modify时间更新时,Access和Change时间都会得到相
应的更新。用ls -l看到的时间是文件的Modify时间
(3)Change是指“改变时间”
主要是指文件的状态或属性的改变。对一个文件或目录进行mv chown chcgrp等操作后,change 时间会更新。ls -lc显示的是change time
注意几处地方:
1)解压一个打包的文件,解压出来的文件的mtime是文件最后被修改的time,这个时候ctime却能表示这个文件被解包
的时间,也就是在本机上被创建的时间(前提ctime没有被修改过),所以会看到mtime和ctime相差很大。使用cp命
令会修改源文件的三个time,想要保留原文件的时间属性可以使用-p选项,但是只能保留atime和mtime,ctime是一
样会被改变的。文件夹的三个time取决与文件夹里面文件的三个time。任何一个文件的atime,mtime,ctime的改变
都直接导致文件夹相应a、m、c time的改变。所以通过看用户home文件夹的time来判断用户的创建时间是不准确的。
一个用户的登录,在home目录创建文件,和退出登录等动作都是会改变home目录的三个time的。总结下linux没有办
法能确定一个文件的创建时间,只能通过各种间接的办法去推测大概的时间。linux推测用户创建时间的方法:(都
是不准确)同样的一个用户的创建时间也没有办法确定。