Cuando redirige cualquier salida de comando a un archivo, notará que los mensajes de error se imprimen en la ventana del terminal. Cualquier comando ejecutado en cualquier shell de Linux, como Bash, utiliza tres transmisiones de E/S regulares. Se utiliza un descriptor de archivo numérico para representar cada transmisión.
En esta publicación, comprenderemos la información que se reúne en redirección de stdout y stderr para archivar.
Salida estándar (stDout):
Cada sistema operativo basado en Linux tiene una condena de un lugar predeterminado para el comando ejecutado. Todos se refieren a esta noción como "stdout" o "salida estándar" para que suene más fácil. Su shell bash o zsh busca constantemente la ubicación de salida predeterminada. Cuando el shell detecta una nueva salida, la muestra en la pantalla del terminal para que lo vea. De lo contrario, enviará la salida a su ubicación predeterminada.
Error estándar (stderr):
Error estándar o stderr es similar a la entrada y salida estándar, pero se utiliza para almacenar mensajes de error. El error estándar se puede redirigir a la línea de comando o un archivo utilizando un terminal. Si desea grabar o almacenar mensajes en un archivo de registro separado u ocultar los mensajes de error, la redireccionamiento de STDERR lo ayudará. Ahora vayamos hacia el lado práctico de la redirección de Stdout y Stderr.
Redirigir stdout y stderr a un archivo:
Como la redirección es un método para capturar la salida de un programa y enviarlo como una entrada a otro comando o archivo. Las transmisiones de E/S se pueden redirigir poniendo en uso el operador n>, donde n es el número de descriptor de archivo. Para redirigir stdout, usamos "1>" y para stderr, se agrega "2>" como operador.
Hemos creado un archivo llamado "muestra.txt "para almacenar la salida redirigida en nuestro directorio actual.
El (comando> archivo) se considera como el operador de redirección clásica que solo redirige la salida estándar con el error estándar que se muestra en el terminal. También demostraremos diferentes opciones para redirigir Stderr.
Redirigir stderr y stdout a archivos separados:
A continuación se muestra la sintaxis del comando para redirigir a STDOUT y STDERR a los archivos separados.
comando> OUT 2> Error
El comando otorgado a continuación redirigirá la salida al archivo "fuera" y los mensajes de error al archivo "Error".
Muestra de $ Cat.txt> out 2> error
Redireccionando a Stderr a Stdout:
Es una práctica común redirigir el stderr con la salida estándar de un programa para almacenar todo en un solo archivo. Aquí está la sintaxis de comando para redirigir a Stderr a Stdout:
comando> out 2> y 1
$ ls> samplefile.txt 2> y 1
$ Cat SampleFile.TXT
> Redirecciones redirige el stDout a samplefile.txt, y 2> y 1 redirigirán el stderr a la ubicación actual de stdout.
Si Stderr se redirige a STDOUT primero, use el comando otorgado a continuación para redirigir el STDOT a un archivo.
Comando 2> y 1> archivo
$ ls -al 2> y 1> Muestra.TXT
$ Cat SampleFile.TXT
"&>" También se usa para la misma funcionalidad que realiza "2> y 1".
comando y> archivo
$ ls &> samplefile.TXT
$ Cat SampleFile.TXT
Redirigir stdout y stderr a un solo archivo:
Todos los conchas no admiten esta redirección de forma, pero Bash y Zsh lo admiten. Stdout y stderr se pueden redirigir utilizando la siguiente sintaxis.
comando &> out
Muestra de $ Cat.txt &> out
En la próxima sección del artículo, verificaremos el ejemplo separado para la redirección de Stdout y Stderr.
Redirigir stdout a un archivo:
La salida estándar está representada por el "1" en la lista de números de descriptor de archivos. Para el comando de redirección sin ningún número de descriptor de archivo, el terminal establece su valor en "1". La sintaxis para redirigir el stDout a un archivo se proporciona de la siguiente manera:
Comando> Archivo
Estamos usando la "muestra.Archivo "para almacenar la salida estándar del comando" ls -al "
$ ls -al> muestra.TXT
Muestra de $ Cat.TXT
Comando 1> archivo
$ ls 1> muestra.TXT
Muestra de $ Cat.TXT
Redirigir stderr a un archivo:
Use el operador "2>" para redirigir el stderr a un archivo.
Comando 2> archivo
$ ls -al 2> muestra.TXT
Podemos combinar la ejecución de Stderr y Stdout en un solo comando de redirección.
Comando 2> Error.txt 1> salida.TXT
En el ejemplo dado a continuación, los mensajes de error se almacenarán en "Error.txt ", donde" salida.txt "tendrá su salida estándar de" comando ls."
$ ls 2> error.txt 1> salida.TXT
$ CAT SALIDA.TXT
Conclusión:
Tener el concepto de redirección y descriptores de archivos para transmisiones de E/S es muy valioso mientras trabaja en un terminal de Linux. En esta publicación, hemos hablado sobre las transmisiones de E/S regulares, incluidas Stdout y Stderr. La primera sección de esta publicación le brinda información detallada sobre la redirección, las transmisiones de E/S y el descriptor de archivos numéricos. A continuación, ha visto el ejemplo práctico para varias formas de redirección de Stdout y Stderr.