マンページは次のように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
表示されます。)