Oh querida, pipeline tripla ssh com loop e xargs inúteis, você encontrou a pior maneira de fazer isso.
O \r que você está vendo parece ser uma sobra da nova linha que está passando pelo canal. Você deve remover a opção -t , pode ser a causa de seus problemas. Saída destinada a exibir em terminais virtuais é diferente do fluxo normal.
Além disso, echo ${path1} | xargs é completamente supérfluo, apenas execute find ${path1} , você só tem uma linha de entrada para xargs de qualquer forma. O mesmo vale para o segundo xargs . Claro, você pode colocar tudo em find . Experimente:
ssh root@"${sourcenode}" "find ${path1} -printf 'chmod %m \"f\"\n'"
E canalize isso para o próximo comando ( NOT em um loop bash local, mas alimente-o diretamente no ssh para destnode).