How to exclude directories from getting their metadata updated?
(Macintosh HFS+ with rsync 3.0.5)
p.org at gmx.at
Mon Mar 9 20:43:55 GMT 2009
Dear Matt McCutchen!
On Mon, 2009-03-09 at 01:48 +0100 Matt McCutchen wrote:
> On Mon, 2009-03-09 at 01:00 +0100, Stefan Nowak wrote:
>> I am doing a recursive sync on a Macintosh, hence HFS+ filesystem,
>> with rsync 3.0.5 installed through MacPorts. I am amazed of rsync's
>> metadata capability! Let me tell you everything works amazingly
>> perfect! When I change i.e. the Finder color labels, and sync that
>> file, rsync successfully only transfers the delta, hence the metadata
>> only! Very effective!
> I'm glad to hear it. That's a result of Mac OS 10.4+ exposing all
> metadata as POSIX-style xattrs and the improvements made to rsync's
> xattr support to handle such large xattrs efficiently.
>> Now, for my particular purpose, I want all this behaviour, except
>> directories are not updated with metadata (particularly the date time
> I don't see what's harmful about copying the directory metadata.
> But if
> you dislike it, you can disable copying of the modification times with
> --omit-dir-times. That option doesn't currently affect creation
> maybe it should. To disable copying of permissions and user/group
> ownership, you could use the stronger --omit-dir-changes provided by
> maintained patch omit-dir-changes.diff.
Directory metadata is not harmful, neither copying .DS_Store.
But I intentionally don't want it, because omitting .DS_Store gives me
the opportunity to have different Finder views/sorting options for the
same directory(paths) on source and target.
Regarding directory time updating I had some little thinking:
1) rsync only updates directory metadata if source dir is newer than
target dir. Right? So if I added files to target dir more recently
than to source dir, rsync would not update the target dir time. I
consider this as rsync's desirable behavior for me.
2) And if I added files to source more recently than to target, then
the source dir time would change to when the most recent file was
added, and rsync would send these time update to target dir, which
afterwards also will contain those very recent files. As these files
are new to "my personal realm", when they were first added to
regardless whatever storage device, I also assume it as desirable that
if they are synced to somewhere else, that their future parent dir
keeps this "new to my personal realm" date, rather than the date of
If these my assumptions are true, than I would say that I am not
anymore opposed to updating target dir time!
> BTW, --rsync-path serves no purpose on a local copy.
Thanks for this remark. I just put it there to avoid, that the local
rsync 3.0.5 (in the MacPorts path) accidentially connects to the
default Leopard rsync 2.6.9 (which has had precedence in my shell
execution path) as its "remote" engine.
So if you call rsync with a source and target, which are both local,
rsync is intelligent enough to connect to itself (its very own version
number)? Really? Please confirm. Or does my additional argument make
sense to be on the safe side?
Now I changed my .bash_profile to that the MacPort dirs are before the
system builtin dirs. I googled for "site:lists.macosforge.org path
precedence" and found my answers.
Thanks! Best regards,
>> I USED THIS CODE
>> /opt/local/bin/rsync \
>> --rsync-path="/opt/local/bin/rsync" \
>> --protect-args \
>> --archive \
>> --crtimes \
>> --hard-links \
>> --acls \
>> --xattrs \
>> --fileflags \
>> --exclude=".*" \
>> --exclude="Icon*" \
>> --verbose --verbose \
>> --itemize-changes \
>> --stats \
>> --progress \
>> --dry-run \
>> ~/Movies/VideosPartially/ \
More information about the rsync