Mention the latest way to specify multiple remote args.

This commit is contained in:
Wayne Davison
2007-09-30 07:46:28 +00:00
parent 4f3c1df6c3
commit f92e15efd5

View File

@@ -149,33 +149,29 @@ See the following section for more details.
manpagesection(ADVANCED USAGE)
The syntax for requesting multiple files from a remote host involves using
quoted spaces in the SRC. Some examples:
The syntax for requesting multiple files from a remote host is done by
specifying additional remote-host args in the same style as the first,
or with the hostname omitted. For instance, all these work:
quote(tt(rsync host::'modname/dir1/file1 modname/dir2/file2' /dest))
quote(tt(rsync -av host:file1 :file2 host:file{3,4} /dest/)nl()
tt(rsync -av host::modname/file{1,2} host::modname/file3 /dest/)nl()
tt(rsync -av host::modname/file1 ::modname/file{3,4}))
This would copy file1 and file2 into /dest from an rsync daemon. Each
additional arg must include the same "modname/" prefix as the first one,
and must be preceded by a single space. All other spaces are assumed
to be a part of the filenames.
Older versions of rsync required using quoted spaces in the SRC, like these
examples:
quote(tt(rsync -av host:'dir1/file1 dir2/file2' /dest))
quote(tt(rsync -av host:'dir1/file1 dir2/file2' /dest)nl()
tt(rsync host::'modname/dir1/file1 modname/dir2/file2' /dest))
This would copy file1 and file2 into /dest using a remote shell. This
word-splitting is done by the remote shell, so if it doesn't work it means
that the remote shell isn't configured to split its args based on
whitespace (a very rare setting, but not unknown). If you need to transfer
a filename that contains whitespace, you'll need to either escape the
whitespace in a way that the remote shell will understand, or use wildcards
in place of the spaces. Two examples of this are:
This word-splitting still works (by default) in the latest rsync, but is
not as easy to use as the first method.
quote(
tt(rsync -av host:'file\ name\ with\ spaces' /dest)nl()
tt(rsync -av host:file?name?with?spaces /dest)nl()
)
If you need to transfer a filename that contains whitespace, you can either
specify the bf(--protect-args) (bf(-s)) option, or you'll need to escape
the whitespace in a way that the remote shell will understand. For
instance:
This latter example assumes that your shell passes through unmatched
wildcards. If it complains about "no match", put the name in quotes.
quote(tt(rsync -av host:'file\ name\ with\ spaces' /dest))
manpagesection(CONNECTING TO AN RSYNC DAEMON)