Este problema não tem a ver com o comando em si, no caso, o rsync, mas com uma limitação de máximo de memória permitido para o argumento de um comando do Unix.
Caso queira mais detalhes, veja este artigo Onde se origina o erro bash: NOME_DO_COMANDO : Argument list too long
Para corrigir este problema para o comando rm, cp, ls entre outros, utilize a dica:
- -bash: /bin/rm: Argument list too long
- Como resolver o problema do limite de exclusão/cópia/movimentação de arquivos no Linux
Problema
star@tcd0001:~ $ rsync -avz smartdoc@redundancia0000051:~/arquivos/* ~/arquivos/congelados/ bash: /usr/bin/rsync: Argument list too long rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: remote command could not be run (code 126) at io.c(463) [receiver=2.6.8] smartdoc@redundancia0000051:~ $ ls arquivos/* -bash: /bin/ls: Argument list too long
A solução
star@tcd0001:~ $ rsync -n -u -r -vz smartdoc@redundancia0000051:~/arquivos ~/arquivos/congelados/ receiving file list ... done (...) sent 238,776 bytes received 3,583,756 bytes 144,246.49 bytes/sec total size is 350,390,389,935 speedup is 70,950.33 (DRY RUN) #Agora é o momento de executar novamente o comando e obter os arquivos #Não use <diretorio>/*, use apenas <directorio> star@tcd0001:~ $ rsync -avz smartdoc@redundancia0000051:~/arquivos/* ~/arquivos/congelados/ #Agora sim tudo terá funcionado!