From f92e15efd5eb09f10d28b30728540686c85c86aa Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sun, 30 Sep 2007 07:46:28 +0000 Subject: [PATCH] Mention the latest way to specify multiple remote args. --- rsync.yo | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/rsync.yo b/rsync.yo index ad83ecf6..0c3a9db2 100644 --- a/rsync.yo +++ b/rsync.yo @@ -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) -- 2.34.1