的联机帮助页ls
说:
-u with -lt: sort by, and show, access time; with -l: show access time and sort by name;
otherwise: sort by access time
但这似乎不起作用:
test@debian:~$ date > file
test@debian:~$ date
Sun Jan 17 13:21:12 CET 2016
test@debian:~$ cat file
Sun Jan 17 13:20:10 CET 2016
test@debian:~$ ls -lu file
-rw-r--r-- 1 test test 29 Jan 17 13:21 file
test@debian:~$ date
Sun Jan 17 13:22:02 CET 2016
test@debian:~$ cat file
Sun Jan 17 13:20:10 CET 2016
test@debian:~$ ls -lu file
-rw-r--r-- 1 test test 29 Jan 17 13:21 file
人们应该期待类似的内容(因为上次访问时间是在 13:22 或更晚):
-rw-r--r-- 1 test test 29 Jan 17 13:22 file
解释是什么?文件是否已缓冲?
答案1
默认情况下,您的文件系统已安装relatime
。如果访问时间已经晚于或等于文件的修改时间,则不会更新访问时间。
这是一种(违反 POSIX)优化,以避免每次读取单个文件都会导致写入磁盘。
明显的 atime 更新不受缓冲的影响。 (lazyatime
将缓冲 atime 长达 24 小时 - 但内存中的 atime 每次都会更新,这就是ls
将显示的内容。)。