linux中文件的accesstime/modifytime/changetime的区别

来源:互联网 发布:js function中onclick 编辑:程序博客网 时间:2024/05/18 02:36
[root@Ronglinux test]# stat case.sh 
  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
access time是文档最后一次被读取的时间。因此阅读一个文档会更新它的access时间,但它的modify时间和change时间并没有变化。cat、more 、less、grep、sed、tail、head、vi、vim、nano、touch这些命令都会修改文件的access时间。

change time是文档的索引节点(inode)发生了改变(比如位置、用户属性、组属性、权限值、内容等);

modify time是文件本身的内容发生了变化。[文档的modify时间也叫时间戳(timestamp).] 

chmod, chown,create,mv等动作会将Linux文件的change time修改为系统当前时间

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)
ls -lc  (show files change time and sort by name )
ls -l   (show files modify time and sort by name )
如果加上-t参数,则按相应的时间排序后显示。加上--time-style=full-iso,则会把文件的相应年月日时分秒time全部显示出来。

touch命令能改变文件的access时间和modify时间为任意指定的时间。

modify time只能改变为系统时间,不能改变为任意时间。甚至用c程序来直接读写inode,也不会修改change time。 
  
补充:vi 命令会修改文件的access时间,无论文件内容是否改变;如果文件内容改变,还会修改文件的modify时间,此时access时间和modify时间是不同的,access时间是刚打开文件的时间,modify时间是文件内容被保存退出的时间。


0 0
原创粉丝点击