我使用stat来获取文件的访问时间(当前日期是2013年10月23日)
[juan@JN-LNXSVR-02 labfiles]$ stat nursery
File: `nursery'
Size: 837 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 139539 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ juan) Gid: ( 500/ juan)
Access: 2013-10-22 18:03:20.703888346 -0400
Modify: 2013-10-21 16:57:07.801165793 -0400
然后我编辑文件并关闭它而不做任何修改,然后再次提交stat
juan@JN-LNXSVR-02 labfiles]$ vi nursery
[juan@JN-LNXSVR-02 labfiles]$ stat nursery
File: `nursery'
Size: 837 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 139539 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ juan) Gid: ( 500/ juan)
Access: 2013-10-22 18:03:20.703888346 -0400
Modify: 2013-10-21 16:57:07.801165793 -0400
Change: 2013-10-21 16:57:07.801165793 -0400
但访问时间没有变化,为什么?
我找不到任何noatime属性
juan@JN-LNXSVR-02 labfiles]$ grep noatime /proc/mounts
[juan@JN-LNXSVR-02 labfiles]$
mount命令的输出是
[juan@JN-LNXSVR-02 labfiles]$ mount
/dev/mapper/vg_jnlnxsvr02-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[juan@JN-LNXSVR-02 labfiles]$
1 回答
你能包含
mount
的输出吗?也许你的磁盘安装了noatime
?编辑(再次):
relatime
只会在修改后读取一次但不是每次都更新一次 . 从Linux 2.6.30开始,这似乎是标准选项,所以如果你做了write
read
,它会在读取时更新 . 但是write
read
read
只会在第一次读取时更新它(并且每次修改后都会更新一次) .鉴于您的访问时间已经比修改时间更新,如果您只阅读,则在使用
relatime
(或没有atime
选项)安装时访问时间不会更新 .来自
man mount
:并且为了记录,如果您想要恢复旧行为,请使用
strictatime
.