Rsyncing Windows directory to a Linux box: problem with
spacesin directory names
Max Kipness
mkipness at geniant.com
Wed Dec 17 13:08:53 EST 2003
> On Wed, Dec 17, 2003 at 09:05:50AM +0900, Charles Nadeau wrote:
> > backup=`cat /etc/snapshot/include.text` rsync -va [...] $backup
> > $backuproot/$type.1/
>
> This is entirely a shell issue -- the shell you are using is
> splitting the args at all whitespace, and you need to tell it
> to stop. In fact, in some shells $backup would always refer
> to a single arg unless you run the line through an extra
> "eval ..." sequence (bourne shell and bash does way too much
> word splitting for my tastes, for instance).
>
> One option is to use a more advanced shell expansion of the
> file into args. In zsh (my shell of choice), you can do
> something like this:
>
> rsync -va --OPTIONS "${(f)$(</path/include.text)}"
> $backuproot/$type.1/
>
> This takes the contents of the include.text file, splits in
> by lines, and quotes each one as a separate arg. If you're
> not using zsh, perhaps someone familar with the shell you are
> using can assist you with something similar.
>
> Another option is to upgrade to the CVS version (available in
> the near future as version 2.6.0) and use the --files-from
> option to specify your files (since it already parses the
> names one per line).
Charles,
Based on what was just said above, I am using Bash version 2.05b.0(1),
and no extra configs for splitting are necessary as it splits
appropriately at the end of the line.
Max
More information about the rsync
mailing list