Прикосновением к новому файлу, почему 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?

Возможно, у вас есть что-то работающее, которое следит за изменениями в этом каталоге?

Если я попробую это ни с чем, а приглашением оболочки, время доступа ff соответствовать временам изменения и изменения. Но если я открою в каталоге директорию Nautilus (GNOME file manager) и попробую, время доступа почти ровно через секунду.

Что происходит в моем случае, так это то, что Nautilus наблюдает за изменениями в этом каталоге, потому что на нем открыто окно. Он видит, что новый файл был создан и хочет знать, какой значок показывать, поэтому он заглядывает в файл, чтобы посмотреть, какой он файл, который обновляет время доступа.

Нет никакой причины для этого 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 

Если это правда, может быть демон или что-то вроде антивируса, доступ к вашему файлу после его создания.