rsync for the brave

Matt McCutchen matt at mattmccutchen.net
Mon Nov 10 01:54:21 GMT 2008


On Sun, 2008-11-09 at 17:50 -0700, Ashley M. Kirchner wrote:
> Matt McCutchen wrote:
> > I'm surprised that the exclude doesn't work.  Could you post your whole
> > rsync command line so I can see if anything else might be interfering?
>     Keep in mind that this is the Win32 ported version (cwRsync) that 
> I'm using.
> 
>     "C:\Program Files\cwRsync\bin\rsync.exe" -arvz --progress --partial \
>      --delete --delete-excluded --exclude="Network Trash Folder"        \
>      --filter=". C:\Program Files\cwRsync\filter.txt"                   \
>      --log-file="C:\Program Files\cwRsync\AbyssI.txt"                   \
>      /cygdrive/f/ /cygdrive/y/
> 
>     I've tried adding it to the command line (see above), and when that 
> failed, I moved it into the filter.txt file instead:
> 
>         C:\Program Files\cwRsync>type filter.txt
>         - .*
>         - ICON*
>         - RECYCLE*
>         - System Volume Information
>         - Temporary Items
>         - TheFindByContentFolder
>         - TheVolumeSettingsFolder
>         - Network Trash Folder
>         - msdownld.tmp
> 
>         C:\Program Files\cwRsync>
> 
>     I'm not using both at the same time, it's either the command line, 
> or filter.txt file.  Neither seem to work.  What rsync is telling me is 
> that it wants to DELETE the copy that's on the Y: drive (since it 
> doesn't exist on the F: drive).  However, I need it to ignore that 
> folder all together, don't bother copying, don't bother deleting.

--delete-excluded prevents the --exclude="Network Trash Folder" rule
from protecting the "Network Trash Folder" on the destination from
deletion; that's the whole point of --delete-excluded.  To protect this
directory, you'll need to use a rule that explicitly applies to both the
sender (s) and the receiver (r):

--filter="-sr Network Trash Folder"

See the descriptions of the "s" and "r" modifiers under 'The following
modifiers are accepted after a "+" or "-"' in the man page for more
information.

By the way, if some of your excludes are intended to match only files at
the top level of F: (rather than in a subdirectory), consider anchoring
them with a leading slash, e.g.:

--filter="-sr /Network Trash Folder"

Matt



More information about the rsync mailing list