¿Hay alguna manera de redirigir la salida a un archivo sin almacenar en búfer en unix / linux?

Pregunta:

Tengo un proceso por lotes de larga ejecución que genera información de depuración y proceso en stdout. Si solo ejecuto desde una terminal, puedo realizar un seguimiento de 'dónde está', pero luego los datos se vuelven demasiados y se desplazan fuera de la pantalla.

Si redirijo a la salida a un archivo '> out.txt', eventualmente obtengo la salida completa, pero está almacenada en búfer, por lo que ya no puedo ver lo que está haciendo en este momento.

¿Hay alguna manera de redirigir la salida pero hacer que no almacene sus escrituras en búfer?

Respuesta:

Puede establecer explícitamente las opciones de almacenamiento en búfer de las transmisiones estándar usando una llamada setvbuf en C (vea este enlace ), pero si está tratando de modificar el comportamiento de un programa existente, pruebe stdbuf (parte de coreutils comienza con la versión 7.5 aparentemente).

Esto almacena la stdout hasta una línea:

stdbuf -oL command > output

Esto deshabilita el almacenamiento en búfer de stdout completo:

stdbuf -o0 command > output

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım