Времена доступа к файлу правильно не сохраняются в Mac OS X?

Я пытаюсь определить, как времена доступа к файлу сохраняются по умолчанию в Mac OS X, поскольку я пытаюсь диагностировать некоторое нечетное поведение, которое я вижу в новом Цельном корпусе MBP (рабочий Snow Leopard, 10.6.2):

Признаки (выполняющий развертку к определенному поведению, которое, кажется, вызывает проблему):

  • дурак не может переключиться на почтовые ящики, которые недавно получили новую почту
  • почта поставляется 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, Расширенный (Журналируемый)".

1
задан 18.03.2010, 18:41

1 ответ

От man touch (на снежном барсе):

Change the modification time of the file.  The access time of the
file is not changed unless the -a flag is also specified.

Что еще более важно, это хорошо работает для меня:

betelgeuse:tmp james$ touch test
betelgeuse:tmp james$ touch -m -t 200801010000 test2
betelgeuse:tmp james$ touch -a -t 200801010000 test3
betelgeuse:tmp james$ ls -lu test*
-rw-r--r--  1 james  wheel  0 31 Dec 07:41 test
-rw-r--r--  1 james  wheel  0 31 Dec 07:41 test2
-rw-r--r--  1 james  wheel  0  1 Jan  2008 test3
betelgeuse:tmp james$ ls -l test*
-rw-r--r--  1 james  wheel  0 31 Dec 07:41 test
-rw-r--r--  1 james  wheel  0  1 Jan  2008 test2
-rw-r--r--  1 james  wheel  0 31 Dec 07:41 test3
betelgeuse:tmp james$ 

С другой стороны, когда я пробую то же самое в ~, я получаю те же результаты как Вы:

betelgeuse:~ james$ touch test
betelgeuse:~ james$ touch -m -t 200801010000 test2
betelgeuse:~ james$ touch -a -t 200801010000 test3
betelgeuse:~ james$ ls -lu test*
-rw-r--r--  1 james  staff  0 31 Dec 07:42 test
-rw-r--r--  1 james  staff  0 31 Dec 07:42 test2
-rw-r--r--  1 james  staff  0 31 Dec 07:42 test3

Различие? Центр внимания не индексирует/tmp, но он действительно индексирует ~. Я вполне уверен, что, что Вы видите вот, центр внимания, читая файл для индексации его после изменения atime - который затем задерживает atime к теперь.

Решение легко: просто добавьте директоров, которых Вы не хотите индексированный к списку Центра внимания папок, которые не должны быть индексированы.

Только, чтобы подтвердить, что это имело место, я сделал новый dir, назвал "nospotlight" и сказал Центру внимания не индексировать его.

betelgeuse:nospotlight james$ ls -l *
-rw-r--r--  1 james  staff  0 31 Dec 07:47 test
-rw-r--r--  1 james  staff  0  1 Jan  2008 test2
-rw-r--r--  1 james  staff  0 31 Dec 07:47 test3
betelgeuse:nospotlight james$ ls -lu *
-rw-r--r--  1 james  staff  0 31 Dec 07:47 test
-rw-r--r--  1 james  staff  0 31 Dec 07:47 test2
-rw-r--r--  1 james  staff  0  1 Jan  2008 test3

Дайте разрешение Центра внимания индексировать его, и несколько простых секунды спустя:

betelgeuse:nospotlight james$ ls -lu *
-rw-r--r--  1 james  staff  0 31 Dec 07:48 test
-rw-r--r--  1 james  staff  0 31 Dec 07:48 test2
-rw-r--r--  1 james  staff  0 31 Dec 07:48 test3

и еще раз, изменяя результаты mtime в обновленном atime.

Это - определенно Центр внимания.

5
ответ дан 12.12.2019, 08:41

Теги

Похожие вопросы