[root@Ronglinux test]# stat case.shaccess time是文档最后一次被读取的时间。因此阅读一个文档会更新它的access时间,但它的modify时间和change时间并没有变化。cat、more 、less、grep、sed、tail、head、vi、vim、nano、touch这些 命令 都会修改文件的access时间。
File: "case.sh"
Size: 319 Blocks: 8 IO Block: 4096 普通文件
Device: fd00h/64768d Inode: 394209 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-03-05 10:05:42.684425093 +0800
Modify: 2015-03-05 10:05:39.883270260 +0800
Change: 2015-03-05 10:05:39.887270976 +0800
change time是文档的索引节点(inode)发生了改变(比如位置、用户属性、组属性、权限值、内容等);
modify time是文件本身的内容发生了变化。[文档的modify时间也叫时间戳(timestamp).]
ls -l命令看到的是modify time
用wget等工具 下载 的文件,change time不会被修改。
用vi等工具编辑一个文件保存后,modify time会被修改。
用ls -l命令不会修改文件的access time,但cat命令会修改access time。
引用:
ls -lu (show files access time and sort by name)如果加上-t参数,则按相应的时间排序后显示。加上--time-style=full- iso ,则会把文件的相应年月日时分秒time全部显示出来。
ls -lc (show files change time and sort by name )
ls -l (show files modify time and sort by name )
touch命令能改变文件的access时间和modify时间为任意指定的时间。
modify time只能改变为系统时间,不能改变为任意时间。甚至用c 程序 来直接读写inode,也不会修改change time。
补充:vi 命令会修改文件的access时间,无论文件内容是否改变;如果文件内容改变,还会修改文件的modify时间,此时access时间和modify时间是不同的,access时间是刚打开文件的时间,modify时间是文件内容被保存退出的时间。