Я пытаюсь определить, как времена доступа к файлу сохраняются по умолчанию в Mac OS X, поскольку я пытаюсь диагностировать некоторое нечетное поведение, которое я вижу в новом Цельном корпусе MBP (рабочий Snow Leopard, 10.6.2):
Признаки (выполняющий развертку к определенному поведению, которое, кажется, вызывает проблему):
Посредством тестирования это не появляется это 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, Расширенный (Журналируемый)".
От 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.
Это - определенно Центр внимания.