Como resolver o problema bash: /usr/local/bin/rsync: Argument list too long

image_pdfimage_print

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:

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!
Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!