2 votos

Zsh: lista de argumentos demasiado larga - ¿Cómo aumentar el límite?

Como se menciona aquí, el tamaño del argumento de un comando es bastante limitado. Es entonces cuando obtienes zsh: argument list too long.

En mi máquina parece ser

$ sysctl kern.argmax                                                                                                                                                                                                                            
kern.argmax: 1048576

Así que, incluso con 50k archivos con nombres de 25 caracteres, tenemos 1250000 y eso es demasiado. Lo cual parece un poco absurdo en una máquina con 64 GB de RAM.

sysctl -a -W no lista argmax, lo que sugiere que no se puede cambiar en tiempo de ejecución.

¿Se puede aumentar de alguna manera este límite en lugar de trabajar alrededor del problema con xargs/zargs/zcp/...?

2voto

Oskar Puntos 1242

Siento que tu enfoque aquí es incorrecto. Usa find y xargs como programas principales diseñados para evitar sobrecargar la cadena de llamadas del shell. Los builtins están diseñados para manejar texto largo sin desbordamiento de búfer. Por razones exec puede ser abusado para desbordamiento de búfer y tiene un límite fijo por diseño.

Así es como docenas de ingenieros han diseñado los shells y Unix durante décadas. Puede que no te guste, estés de acuerdo con ello, pero estás limitado por estas implementaciones y opciones de diseño de seguridad en cómo funciona el shell.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X