Hi Matt >@2008.02.07_21:39:08_+0200
> On Thu, 2008-02-07 at 14:46 +0200, Dale Whitfield wrote: > > I would like to avoid the following situation: > > > > SRC has: > > -rwxr-xr-x 1 root staff 1596328 2005-04-29 17:34 libc-2.3.3.so > > -rw-r--r-- 1 root staff 193 2005-04-29 17:34 libc.so > > lrwxrwxrwx 1 root staff 13 2007-02-05 15:06 libc.so.6 -> libc-2.3.3.so > > > > DEST has: > > -rwxr-xr-x 1 dale dale 1558836 2008-02-07 12:25 libc-2.3.6.so > > -rw-r--r-- 1 dale dale 193 2008-02-07 11:46 libc.so > > lrwxrwxrwx 1 dale dale 13 2008-02-07 11:42 libc.so.6 -> libc-2.3.6.so > > > > If I run: > > > > rsync --ignore-existing -avn SRC DEST > > > > output shows the following is to be written to DEST > > > > libc-2.3.3.so > > libc.so.6 -> libc-2.3.3.so > > > > How do I avoid libc.so.6 being over-written to point to an old lib? > > It looks like --ignore-existing is currently implemented to apply only > to regular files. I think it was intended to apply to all > non-directories; certainly that is necessary if it is to prevent > undesired tweaking when a --link-dest run is restarted after an > interruption. I will write a patch to make --ignore-existing apply to > all non-directories after I look into some other weirdness I just > noticed with --ignore-non-existing. > > Two approaches you might try in the meantime: > > 1. Exclude the problematic symlinks, by hand if there are only a few or > otherwise with a script that scans the destination and generates an > --exclude-from file. > > 2. If both source and destination are local, run "rsync <options> DEST > SRC DEST", i.e., give the destination as an initial source argument. > When rsync unduplicates the file-list, existing destination files will > take priority over source files. (Attributes on source directories > won't be propagated because the destination attributes will override > them; if you want to propagate the attributes, you could use an extra > run with --include='*/' --exclude='*'.) > > Matt > Excellent. Option 2 worked since SRC and DEST are local. However, its not intuitive or obvious. As you suggest, --ignore-existing should apply to all non-directories. The side-effect of over-writing a symlink, as in my case above, is clearly not desirable. Dale -- To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
