Files
為什麼“touch -a”還要設置ctime?
是 coreutils-8.4-37.el6.x86_64 的 touch(1) 還是我的大腦壞了?
$ touch abc $ LANG=C stat abc File: `abc' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd04h/64772d Inode: 10485773 Links: 1 Access: (0664/-rw-rw-r--) Uid: (3060399/ nodakai) Gid: ( 418/ quant) Access: 2016-10-14 18:42:06.189751847 +0800 Modify: 2016-10-14 18:42:06.189751847 +0800 Change: 2016-10-14 18:42:06.189751847 +0800 $ touch -a abc $ LANG=C stat abc File: `abc' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd04h/64772d Inode: 10485773 Links: 1 Access: (0664/-rw-rw-r--) Uid: (3060399/ nodakai) Gid: ( 418/ quant) Access: 2016-10-14 18:42:17.374235446 +0800 Modify: 2016-10-14 18:42:06.189751847 +0800 Change: 2016-10-14 18:42:17.374235446 +0800 $ touch --help | grep 'access time' -a change only the access time
如您所見,不僅是 atime,而且還有 ctime,由
touch -a
!?!?更新如果這有什麼不同的話,文件系統是 ext4 over LVM。
touch
被指定為改變文件訪問和修改時間;更改更改時間是更改文件元數據的副作用,並且touch
無法對此進行任何控制(另請參閱futimens()
和utimensat()
使用的函式touch
)。
-a
並-m
在此上下文中理解:預設情況下touch
會更改訪問和修改時間(並且系統會更新更改時間);用-a
,它只改變訪問時間,用-m
,它只改變修改時間。如果您指定的時間不是目前時間,您可以看到差異:訪問和/或修改時間將更改為您指定的值,但更改時間將更新為目前時間。