Something I noticed a while ago. I use Carbon Copy Cloner for backing up my files and I noticed one day when I changed a video's "Open with" flag to always open a video file with Movist instead of Quicktime, and the next time the clone ran it copied the file again. Even though nothing was changed. Which made me realize that OS X changes changes a files modification date causing backup programs like Rsync (Which CCC and SuperDuper use) and Time Machine to re-copy the file, even if it's 10GB in size.
Why does it do this? Is there a technical reason or is it an oversight? Seems like a silly idea to me. Especially since changing a label doesn't modify the file and the color selection is duplicated without the whole file being copied.
Best Answer
Some experimentation using the
xattr
command shows this:com.apple.FinderInfo
extended attribute, which every file should have by default.com.apple.ResourceFork
attribute, which not every file has.FinderInfo
attribute does not cause the modification date to be modified.ResourceFork
causes the modification date to be modified.The resource fork historically had a special place in Mac file systems. I'm not sure if the
com.apple.ResourceFork
extended attribute is the same as a resource fork, if the latter was superseded by the former or how else they are connected.If there's a technical difference between an extended attribute and a resource fork, it may be "necessary" for a file to be modified when the resource fork is updated, but not when the extended attribute is written.
It may be that the (legacy) API for updating resource forks updates the file modification date in the process, while the extended attribute API doesn't. The latter possibly in error, possibly because of different philosophies.
Vague information, but it might give a little more insight. In the end though you're right. Some meta information modification causes the modification date to be updated, others doesn't. Whether there's a reason behind this or if it's just an oversight… only a few guys at Apple may know. :)