나는 이것을 가지고있다:
$ ls -l ff
ls: cannot access ff: No such file or directory
$ touch ff
$ stat ff
File: `ff'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 1057193 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ abc) Gid: ( 0/ root)
Access: 2011-09-18 20:36:08.351097228 -0700
Modify: 2011-09-18 20:36:07.340839847 -0700
Change: 2011-09-18 20:36:07.340839847 -0700
mtime과 ctime이 atime보다 오래된 이유는 무엇입니까?
답변1
이 디렉토리의 변경 사항을 모니터링하기 위해 일부 프로그램을 실행하고 있습니까?
쉘 프롬프트를 실행하는 동안 이 작업을 시도하면 액세스 시간이 ff
수정 및 변경 시간과 일치합니다. 그런데 해당 디렉터리에 노틸러스(GNOME 파일 관리자) 창을 열어서 시도해보면 접근 시간이 거의 정확히 1초 정도 늦어진다.
내 경우에는 창이 열려 있기 때문에 Nautilus는 해당 디렉토리의 변경 사항을 감시하고 있습니다. 새 파일이 생성되었음을 확인하고 어떤 아이콘을 표시할지 궁금해하므로 파일을 보고 어떤 유형의 파일인지 확인하여 액세스 시간을 업데이트합니다.
답변2
적어도 일반 터치 명령에 관한 한 이 1초 차이에 대한 이유는 없습니다.
$ ls -l zz
ls: cannot access zz: No such file or directory
$ touch zz
$ stat zz
File: `zz'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 808h/2056d Inode: 265633 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/jlliagre) Gid: ( 1000/jlliagre)
Access: 2011-09-19 07:35:50.679679571 +0200
Modify: 2011-09-19 07:35:50.679679571 +0200
Change: 2011-09-19 07:35:50.679679571 +0200
strace를 사용하여 터치로 생성된 파일에 영향을 미치는 유일한 시스템 호출이 다음과 같은지 확인하세요.
open("zz", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0) = 0
close(3) = 0
utimensat(0, NULL, NULL, 0) = 0
close(0) = 0
사실이라면 파일이 생성된 후 파일에 액세스하는 데몬이나 무언가(예: 바이러스 백신 소프트웨어)가 있을 수 있습니다.