Límite de variable de ruta

3

¿Hay un límite de caracteres en cuanto a la duración de la variable PATH en macOS? ¿O hay un límite en cuanto a la cantidad de archivos binarios a los que puede hacer referencia en su ruta?

    
pregunta Cody Rutscher 21.08.2018 - 14:11

2 respuestas

1

El tamaño de una variable está sujeto a las limitaciones del hardware en el que se ejecuta, es decir, una variable podría ser de millones de bytes. Pero una variable de entorno, como PATH, está sujeta a limitaciones del sistema (ARG_MAX), ya que todo el entorno se pasa a la llamada del sistema, execve . Por lo tanto, una estimación razonable del tamaño máximo de una variable de entorno sería, los bytes utilizados en el entorno actual - env | wc -c , más un buffer razonable de bytes necesarios para ejecutar comandos en el shell - 2048 bytes a 4096 bytes, restados de el número máximo de bytes permitido en un argumento: 262144 bytes. La posibilidad de uso de una variable de entorno de este tamaño es otro problema.

El shell comienza su búsqueda en la ruta más a la izquierda que aparece en la variable PATH, luego continúa hasta la siguiente y la siguiente hasta que encuentra el comando que emitió. El shell también mantiene un registro de ese comando, por lo que no necesita buscar la variable PATH nuevamente en la sesión actual. Esta es una indicación de que buscar el PATH es costoso. Por lo tanto, el tamaño máximo de su variable PATH debe ser tan pequeño como pueda hacerlo.

    
respondido por el fd0 23.08.2018 - 16:57
4

Básicamente nunca alcanzarás el límite si tienes algún tipo de PATH razonablemente sano.

Acabo de intentar tener una variable PATH que tiene 96 kB de largo (excesivamente larga). Funciona en High Sierra sin problemas.

Si lo paso a 128 kB, empiezo a tener problemas al ejecutar comandos ya que fallarán debido al entorno grande. Sin embargo, el entorno PATH se almacena.

    
respondido por el jksoegaard 21.08.2018 - 22:56

Lea otras preguntas en las etiquetas