front
of the file (the host must match one end of the transfer). As a
short‐cut, you can specify just a prefix of ":" to mean "use the
remote end of the transfer". For example:
rsync ‐a ‐‐files‐from=:/path/file‐list src:/ /tmp/copy
This would copy all the files specified in the /path/file‐list
file that was located on the remote "src" host.
If the --iconv and --secluded‐args options are specified and the
--files‐from filenames are being sent from one host to another,
the filenames will be translated from the sending host’s charset
to the receiving host’s charset.
NOTE: sorting the list of files in the --files‐from input helps
rsync to be more efficient, as it will avoid re‐visiting the path
elements that are shared between adjacent entries. If the input
is not sorted, some path elements (implied directories) may end
up being scanned multiple times, and rsync will eventually undu‐
plicate them after they get turned into file‐list elements.
--from0, -0
This tells rsync that the rules/filenames it reads from a file
are terminated by a null (’\0’) character, not a NL, CR, or
CR+LF. This affects --exclude‐from, --include‐from, --files‐
from, and any merged files specified in a --filter rule. It does
not affect --cvs‐exclude (since all names read from a .cvsignore
file are split on whitespace).
--old‐args
This option tells rsync to stop trying to protect the arg values
on the remote side from unintended word‐splitting or other misin‐
terpretation. It also allows the client to treat an empty arg as
a "." instead of generating an error.
The default in a modern rsync is for "shell‐active" characters
(including spaces) to be backslash‐escaped in the args that are
sent to the remote shell. The wildcard characters *, ?, [, & ]
are not escaped in filename args (allowing them to expand into
multiple filenames) while being protected in option args, such as
--usermap.
If you have a script that wants to use old‐style arg splitting in
its filenames, specify this option once. If the remote shell has
a problem with any backslash escapes at all, specify this option
twice.
You may also control this setting via the RSYNC_OLD_ARGS environ‐
ment variable. If it has the value "1", rsync will default to a
single‐option setting. If it has the value "2" (or more), rsync
will default to a repeated‐option setting. If it is "0", you’ll
get the default escaping behavior. The environment is always
overridden by manually specified positive or negative options
(the negative is --no‐old‐args).
Note that this option also disables the extra safety check added
in 3.2.5 that ensures that a remote sender isn’t including extra
top‐level items in the file‐list that you didn’t request. This
side‐effect is necessary because we can’t know for sure what
names to expect when the remote shell is interpreting the args.
This option conflicts with the --secluded‐args option.
--secluded‐args, -s
This option sends all filenames and most options to the remote
rsync via the protocol (not the remote shell command line) which
avoids letting the remote shell modify them. Wildcards are ex‐
panded on the remote host by rsync instead of a shell.