Make an rsync using script with old and new versions of rsync without using the "old" way (--old-args)?
c.buhtz at posteo.jp
c.buhtz at posteo.jp
Fri Sep 2 08:19:08 UTC 2022
this is not a usual support question which could be solved by reading
documentation. I'm an upstream maintainer highly depending on rsync. I'm
doing some research to better understand the behavior change  about
argument protection when using spaces in path names. I'm not sure if I
understand all details correct. And that is why I'm asking here. I would
like to have a confirmation that I understand the details correct and
that my "solution" is a good choice or if there are alternatives.
Let's see what I currently "know" and please correct me if I'm wrong.
1. rsync version 3.2.3 (and older) doing it the "old" way which is
unusual or unexpected by the users because it is not the way other
applications usually handle path names in arguments.
2. rsync version 3.2.4 (and younger) doing it the "new" way which is
IMHO the recommended and preferd way.
3. `--old-args` activates the "old" behavior
4. `--protect-args` activates the "new" behavior
5. `--old-args` and `--protect-args` are the opposite of each other?
(See that Issue )
6. `--old-args` exist in 3.2.4 (and younger) as a workaround to keep
old scripts working
7. `--protect-args` was introduced much earlier with 3.0.0  to
activate the "new" way
Am I correct so far?
My goals are
1. Use the "new" arg protection way introduced with 3.2.4
2. Scripts/applications using that "new way" should work with old and
new versions of rsync without checking for the rsync version on the
My goals in short: I want one way that will work now, in the feature and
with all rsync versions.
Based on my current research it seems to me the solution would be to
modify calls like this
rsync -aiv host:"a simple file.pdf" .
to this with replacing double with single quotes and adding `-s` (short
rsync -s -aiv host:'a simple file.pdf' .
I'm using `-s` here because `--protect-args` will be renamed to
`--secluded-args` in rsync 3.2.6 .
Sidenote: I still asked that question here  and here .
 -- <https://download.samba.org/pub/rsync/NEWS#ENHANCEMENTS-3.0.0>
 -- <https://download.samba.org/pub/rsync/NEWS#ENHANCEMENTS-3.2.6>
 -- <https://unix.stackexchange.com/q/715216/136851>
 -- <https://forums.debian.net/viewtopic.php?f=10&t=152720>
 -- <https://bugzilla.samba.org/show_bug.cgi?id=15154>
More information about the rsync