Sí, ese es un límite en el tamaño acumulativo de argumentos y entorno pasados a la execve()
llamada del sistema al ejecutar un comando externo.
Con zsh
, puedes usar su incorporado mv
en su lugar:
zmodload -F zsh/files +b:zf_mv
zf_mv ./*/* .
O use zargs
para dividir la lista en fragmentos manejables:
autoload zargs
zargs -Ifiles ./*/* -- mv files .
Con ksh93
:
command -x mv ./*/* .
Con GNU xargs
y con GNU mv
con un shell donde printf
está integrado (la mayoría, mksh
siendo la excepción notable):
printf '%s\0' ./*/* | xargs -r0 mv -t .
t
podría ser para "objetivo"?