您的位置:首页 > 运维架构 > Linux

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

2015-03-18 19:59 681 查看
[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时间是文件内容被保存退出的时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux