Why is -e sent to the remote rsync side?

Shachar Shemesh shachar at shemesh.biz
Sun Oct 5 06:22:41 GMT 2008

So, I've done some RTFS, and this is what I've got. I'd still love it if 
Wayne could confirm that my understanding of the source is correct.

Shachar Shemesh wrote:
> So my questions:
> 1. Why does rsync need to pass "-e" to the remote side? After all, the 
> connection is already established at that point.
-e when combined with --server means something different than it does 
normally. With --server it is a means for the client to hand over to the 
server the options and command lines it received itself (hard links, 
symbolic link processing etc.) as well as the protocol version used.
> 2. What does this -e mean? What causes the remote side to really not 
> run anything (trying to run ".L" from the path would be the way I 
> would interpret the command at that point - obviously rsync disagrees :-)
The "." means protocol 3.0 (with explicit numbers for other numbers. 
i.e. - protocol version 3.1 will be listed as "3.1". The current code 
says protocol 4.0 will also be listed as ".", but I'm fairly sure that's 
just a bug that has not manifested yet).

The L means LUTIMES support.

The thing I would like Wayne to confirm is that if the --server option 
is given, the "-e" option will never cause an application to be run, and 
should thus not be considered dangerous.


More information about the rsync mailing list