맨페이지는 다음과 같이 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
표시됩니다.)