새 파일을 터치할 때 mtime과 ctime이 atime보다 오래된 이유는 무엇입니까?

새 파일을 터치할 때 mtime과 ctime이 atime보다 오래된 이유는 무엇입니까?

나는 이것을 가지고있다:

$ 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

사실이라면 파일이 생성된 후 파일에 액세스하는 데몬이나 무언가(예: 바이러스 백신 소프트웨어)가 있을 수 있습니다.

관련 정보