区分一个文件或者目录的更改时间(change time,ctime),访问时间(access time,atime)以及修改时间(modify time,mtime)很重要。
ctime——在Unix中,基本是无法知道一个文件的精确创建时间。更改时间(ctime)是指文件或者目录的属性(所有者、权限等等)被更改的时间。ctime在文件的内容改变的时候也会改变。如果一个文件需要备份的话,dump命令需要用到ctime。你可以用ls -lc 命令来查看ctime。
atime——访问时间(atime)就是一个文件的数据最后一次被访问的时间。例如,显示一个文件的内容或者运行一个shell脚本会更新文件的atime。你可以用ls -lu命令查看。
mtime——修改时间(mtime)就是文件的目前内容最后被修改的时间。这是在一个长目录列表中显示的时间。
在Linux中,状态命令会显示3次。
例子:
$ cat file
文件的atime将更新。
$ chmod g+w file
文件的ctime将更新。
$ echo "File contents" > file
文件的ctime和mtime将更新。
---------------------------------------------------------------------
Linux文件与目录的三种时间状态
1. mtime(medify time):最后一次修改文件或目录的时间
2. ctime(chang time) :最后一次改变文件或目录(改变的是原数据即:属性)的时间如:记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值。
3. atime(access time)::最后一次访问文件或目录的时间
对于文件: 当修改mtime时,ctime必须随着改变.因为文件大小等都属性;有人说说atime也一定会改变,要想修改文件必须先访问;其实是不对的不必访问文件就能修改其内容:如:#echo “This is a test !” >> /etc/issue,issue文件内容会变,但并没有访问文件,所以atime并没有改变.
对于目录:
访问一个目录其atime改变,mtime ,ctime不变;
修改一个目录:在一个目录下touch一个文件,mtime与ctime会改变,atime不一定会变
使用stat命令可以查看三时间值:如 stat filename
也可使用: ls -l file : 查看文件修改时间
ls -lc file: 查看文件状态改动时间
ls -lu file: 查看文件访问时间