Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2450446
  • 博文数量: 540
  • 博客积分: 11289
  • 博客等级: 上将
  • 技术积分: 6160
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-11 20:27
个人简介

潜龙勿用,见龙在田

文章分类

全部博文(540)

文章存档

2018年(2)

2013年(5)

2012年(24)

2011年(104)

2010年(60)

2009年(217)

2008年(128)

分类: LINUX

2009-05-05 15:42:09

Linux文件的change time和Modify time很多人很容易搞混淆,有些Unix参考书都会写错(特别是翻译的),将ctime理解为create time(创建时间),那是瞎说的,Linux文件系统不会记录create time的,除非文件创建过后,没modify,没change,那么文件的创建时间和modify时间及change时间相同。
引用:
[root@test200 temp]# stat libnids-1.16.tar.gz
File: `libnids-1.16.tar.gz'
Size: 72309           Blocks: 152        IO Block: 4096   regular file
Device: 302h/770d       Inode: 4113144     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-27 15:13:03.000000000 +0800
Modify: 2004-03-10 12:25:09.000000000 +0800
Change: 2008-05-27 14:18:18.000000000 +0800
access time是文档最后一次被读取的时间。因此阅读一个文档会更新它的access时间,但它的modify时间和change时间并没有变化。cat、more 、less、grep、sed、tail、head这些命令都会修改文件的access时间。

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

modify time是文件本身的内容发生了变化。[文档的modify时间也叫时间戳(timestamp).]
引用:
st_atime
   Time when file data was last accessed. Changed by  the
   following   functions:   creat(),   mknod(),   pipe(),
   utime(2), and read(2).

st_mtime
   Time when data was last modified. Changed by the  fol-
   lowing  functions:  creat(), mknod(), pipe(), utime(),
   and write(2).

st_ctime
  Time when file status was last changed. time of last modification of file  status  information.Changed by the
  following   functions:   chmod(),   chown(),  creat(),
  link(2),  mknod(),  pipe(),  unlink(2),  utime(),  and
  write().
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时间是文件内容被保存退出的时间。

access time   atime  ls -lu  cat,more,less,head,tail,sed,grep,awk...
modify time   mtime  ls -l  
change time   ctime  ls -lc  chmod,chown,mv,usermod,chgrp,
时间类型
find
查看
常见影响对应时间的操作

access timeatimels -lucat,more,less,head,tail,sed,grep,awk,file
可执行文件被执行;音频视频文件被播放;

modify time mtime ls -l文件内容修改、写入


change time ctime ls -lcchmod,chown,mv,create,usermod,chgrp,ln



三者之间的关系:
atime不会影响mtime和ctime,ctime也不会影响其它两个时间。
mtime则会同时影响到atime和ctime
阅读(4131) | 评论(1) | 转发(0) |
0

上一篇:Oracle在线文档

下一篇:oracle常用命令

给主人留下些什么吧!~~

bzhao2017-02-21 20:31:52

mtime则会同时影响到atime和ctime , 这句话对吗?