Я пытаюсь определить, как время доступа к файлу поддерживается по умолчанию в Mac OS X, так как я пытаюсь диагностировать какое-то странное поведение, которое я вижу в новом MBP Unibody (работает Snow Leopard, 10.6.2):
Симптомы (углубление в конкретное поведение, которое, кажется, вызывает проблему):
- Mutt не может переключиться на почтовые ящики, которые недавно получили новую почту
- почта доставляется procmail, которая обновляет mtime папки mbox, которую она обновляет, но не изменяет atime (так работает обнаружение новой почты: сравнивая atime с mtime)
- однако, mtime и atime файла mbox обновляются
В ходе тестирования не выясняется, что atimes
можно установить отдельно в файловой системе:
: [ether@tequila ~]$; touch test
: [ether@tequila ~]$; touch -m -t 200801010000 test2
: [ether@tequila ~]$; touch -a -t 200801010000 test3
: [ether@tequila ~]$; ls -l test*
-rw------- 1 ether staff 0 Dec 30 11:42 test
-rw------- 1 ether staff 0 Jan 1 2008 test2
-rw------- 1 ether staff 0 Dec 30 11:43 test3
: [ether@tequila ~]$; ls -lu test*
-rw------- 1 ether staff 0 Dec 30 11:42 test
-rw------- 1 ether staff 0 Dec 30 11:43 test2
-rw------- 1 ether staff 0 Dec 30 11:43 test3
Файл test2 создается со старым mtime
, а atime
устанавливается сейчас (так как это новый файл), что является правильным. Тем не менее, test3 создается со старым atime
, но не правильно установлен в файле. Чтобы убедиться, что это не просто поведение, наблюдаемое с новыми файлами, давайте изменим старый файл:
: [ether@tequila ~]$; touch -a -t 200801010000 test
: [ether@tequila ~]$; ls -l test
-rw------- 1 ether staff 0 Dec 30 11:42 test
: [ether@tequila ~]$; ls -lu test
-rw------- 1 ether staff 0 Dec 30 11:45 test
Таким образом, может показаться, что atimes не может быть установлен явно (он всегда сбрасывается на "сейчас" при представлении модификаций mtime
или atime
).
Это что-то присуще самой файловой системе, это что-то, что можно изменить, или я совершенно сумасшедший и смотрю не туда?
PS. вывод mount
:
: [ether@tequila ~]$; mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
... и Дисковая утилита сообщает, что диск имеет тип «Mac OS Extended (Journaled)».