ls -luは最後のアクセス時間を提供しません

ls -luは最後のアクセス時間を提供しません

マンページは次のように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 更新はバッファリングの影響を受けません。 (lazyatimeatimeは最大24時間バッファリングされますが、メモリ内atimeは毎回更新されてls表示されます。)

おすすめ記事