ls -l filename 列出文件的 mtime (最后修改时间)
ls -lu filename 列出文件的 atime(最后访问时间)
ls -lc filename 列出文件的 ctime (最后状态变化时间)
访问时间(atime) atime是access time,即上一次的访问时间;
修改时间(mtime)mtime是modify time,是文件的修改时间;
状态变化时间(ctime)ctime是change time,也是文件的修改时间
文件还有一个创建时间(create time),大多数unix系统上都认为这是个无用的属性,一般工具无法获取这个时间,但是对于ext家族文件系统,通过它的底层调试工具debugfs可以获取create time。
如果刚刚创建一个文件,毋庸置疑它的三个时间是都等于创建时间的。那么在linux上这三个时间分别代表着什么,随着什么而改变:
>访问时间(atime):对文件进行一次读操作,它的访问时间就会改变。例如像:cat、more等操作,但是像state还有ls命令对atime是不会有影响的;
>修改时间(mtime):文件的内容被最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑之后保存,它的mtime就会相应的改变;
>状态时间(ctime):当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime的。
mtime只有修改文件内容才会改变,更准确的说是修改了它的data block部分;
而ctime是修改文件属性时改变的,确切的说是修改了它的元数据部分,
例如重命名文件,修改文件所有者,移动文件(移动文件没有改变datablock,
只是改变了其inode指针,或文件名)等.
当然,修改文件内容也一定会改变ctime(修改文件内容至少已经修改了inode记录上的mtime,
这也是元数据,也就是说mtime的改变一定会引起ctime的改变。