Na máquina do iniciador, rsync
cria uma linha de comando que invoca o destino rsync na máquina remota e envia essa linha de comando usando ssh .... como uma única string . Essa única string é passada para o shell para analisar, dividir em argumentos e executar rsync
. Eu não tenho ideia de por que isso é feito, em vez de empacotar os argumentos (já divididos, expandidos e sem aspas) em algum contêiner seguro para binário para o rsync remoto.
Isso significa que seus argumentos serão analisados por dois shells diferentes, quote e requote de acordo. Geralmente, envolvo cada argumento com aspas duplas e, em seguida, a expressão inteira em aspas simples. às vezes não é o suficiente, ou pode ser complicado se você quiser que a mesma expressão seja usada local e remotamente.
Nesse caso, eu costumo definir alguns links com nomes simples, sem espaços, todos ASCII, e usar isso.