我正在尝试确定默认情况下Mac OS X中文件访问时间是如何维护的,因为我正在尝试诊断我在新的MBP Unibody(运行Snow Leopard,10.6.2)中看到的一些奇怪的行为:
症状(深入到导致问题的特定行为):
- mutt无法切换到最近收到新邮件的邮箱
- 邮件由procmail提供,它更新正在更新的mbox文件夹的mtime,但不会改变atime(这是新邮件检测的工作原理:通过比较atime和mtime)
- 但是,mbox文件的mtime和atime都会更新
通过测试,似乎无法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
设置为now(因为它是一个新文件),这是正确的。但是,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
修改时,它总是重置为“now” )。
这是文件系统本身固有的东西,是可以改变的东西,还是我完全疯了,看错了地方?
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)”。
所有命令报告$?= 0。
—
以太于2009年
echo $?
报告是什么?