GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo redirigir stderr y stdout a diferentes archivos en la misma línea en el script?

Así:

$ command >>output 2>>error

Simplemente agréguelos en una línea command 2>> error 1>> output

Sin embargo, tenga en cuenta que >> es para agregar si el archivo ya tiene datos. Considerando que, > sobrescribirá cualquier dato existente en el archivo.

Entonces, command 2> error 1> output si no desea agregar.

Solo para completar, puede escribir 1> como solo > ya que el descriptor de archivo predeterminado es la salida. entonces 1> y > es lo mismo.

Entonces, command 2> error 1> output se convierte en, command 2> error > output


Prueba esto:

your_command 2>stderr.log 1>stdout.log

Más información

Los numerales 0 a través de 9 son descriptores de archivos en bash.0 significa entrada estándar, 1 significa salida estándar, 2 representa el error estándar. 3 hasta 9 están libres para cualquier otro uso temporal.

Cualquier descriptor de archivo se puede redirigir a un archivo o a otro descriptor de archivo usando el operador > . En su lugar, puede utilizar el operador >> para agregar a un archivo en lugar de crear uno vacío.

Uso:

file_descriptor > filename

file_descriptor > &file_descriptor

Consulte la Guía avanzada de secuencias de comandos de Bash:Capítulo 20. Redirección de E/S.


O si desea mezclar salidas (stdout y stderr) en un solo archivo, puede usar:

command > merged-output.txt 2>&1

Linux
  1. Cómo dividir y combinar archivos desde la línea de comandos en Linux

  2. ¿Configurar el Shell para imprimir Stderr y Stdout en diferentes colores?

  3. ¿Cómo redirigir Stderr y Stdout a diferentes archivos y también mostrarlos en la terminal?

  4. ¿Cuál es la diferencia de redirigir una salida usando >, &>, >&y 2&>?

  5. Redirigir toda la salida al archivo en Bash

Cómo redirigir stderr a stdout en Bash

¿Cómo saber si la salida de un comando o script de Shell es Stdout o Stderr?

¿Cómo imprimir una salida de varias líneas en la misma línea?

Cómo redirigir la salida a un archivo y stdout

¿Cómo redirigir la salida de system() a un archivo?

bash:redirigir stderr al archivo y stdout + stderr a la pantalla