Redirigir Stderr y Stdout a un archivo en Bash

Abid Ullah 15 febrero 2024
  1. Salida estándar y error estándar en Linux
  2. Redirigir la salida estándar a un archivo en Bash
  3. Redirigir el error estándar a un archivo en Bash
  4. Redirigir la salida estándar y el error estándar a un archivo en Bash
Redirigir Stderr y Stdout a un archivo en Bash

Este artículo discutirá la salida estándar y el error estándar en Linux. Veremos cómo podemos redirigir la salida estándar y el error estándar en Bash.

Comencemos por comprender los términos Salida estándar y Error estándar en Linux.

Salida estándar y error estándar en Linux

En Linux, los comandos toman algunas entradas del usuario, que pueden ser un archivo o cualquier atributo. Cuando ejecutamos estos comandos, dan una salida de la entrada que ingresamos, llamada Salida estándar.

Esta salida estándar puede ser un éxito o un error. Si el resultado que obtenemos es un error, lo llamamos error estándar.

Ambos se mostrarán en la pantalla de nuestro terminal. A veces, queremos almacenar la salida estándar y el error estándar en un archivo para probar o depurar el código.

En Linux, podemos redirigir estas dos salidas a un archivo, y el proceso de almacenamiento se llama redirección.

En Linux, para cada proceso, tenemos tres flujos de datos, Entrada estándar (stdin), Salida estándar (stdout) y Error estándar (stderr).

La entrada estándar (stdin) toma la entrada del usuario a través del teclado. La salida estándar (stdout) muestra la salida en la pantalla del terminal.

El error estándar (stderr) muestra la información del error en la pantalla. De forma predeterminada, tanto la salida estándar como el error estándar se imprimen en la pantalla del terminal.

En Linux, cada flujo de datos tiene una identificación numérica única:

  • Para entrada estándar (stdin), el id numérico es 0.
  • Para la salida estándar (stdout), el id numérico es 1.
  • Para el error estándar (stderr), el id numérico es 2.

Expliquemos la redirección de la salida estándar y el error estándar con más detalle.

Redirigir la salida estándar a un archivo en Bash

En Linux, podemos redirigir el stdout a un archivo usando su identificación numérica. Para redirigir la Salida Estándar de cualquier comando, usamos 1 con una operación de redirección que es el signo >.

En nuestro ejemplo, usaremos el comando ls. Redirigiremos la salida del comando ls a un archivo.

Luego veremos el archivo de texto para ver la salida del comando ls almacenado en el archivo.

Código de ejemplo:

$ ls 1> stdout.txt

Para ver el archivo, usamos este comando:

$ cat stdout.txt

La salida del código:

Redirigir la salida del comando ls a un archivo

Como se muestra en la pantalla de la terminal anterior, usamos el comando ls 1> stdout.txt en la terminal. Este comando almacena la salida del comando ls en el archivo llamado stdout.txt.

Usamos el comando ls en Linux para listar todos los archivos y directorios. Entonces redirigimos la salida del comando ls en un archivo.

Cuando vimos el archivo usando el comando cat, pudimos ver la salida estándar del comando ls almacenado en el archivo. Así es como podemos redirigir la salida estándar de cualquier comando a un archivo usando su identificación numérica.

Redirigir el error estándar a un archivo en Bash

También podemos redirigir el error estándar a un archivo usando su id numérico. Para redirigir el error estándar a un archivo, usamos su identificación numérica 2 con el operador de redirección, >.

Podemos hacerlo usando el siguiente comando en la terminal.

Código de ejemplo:

$ cat file.txt 2> stderr.txt

Para ver el archivo llamado stderr.txt, usamos este comando:

$ cat stderr.txt

Redirigir stderr a un archivo

Como podemos ver, usamos el comando cat file.txt 2> stderr.txt en la terminal. Dado que no hay ningún archivo llamado file.txt en el directorio actual, el comando cat dará un error que agregamos en el archivo stderr.txt.

Cuando visualizamos el archivo stderr.txt usando el comando cat, podemos ver que muestra el error que dice No such file or directory. Esto significa que hemos redirigido el error estándar del comando cat a un archivo llamado stderr.txt.

Así es como podemos redirigir el error estándar de cualquier comando a un archivo.

Redirigir la salida estándar y el error estándar a un archivo en Bash

También podemos redirigir estas dos salidas a un archivo usando un solo comando. Para eso, usamos el siguiente comando.

Código de ejemplo:

$ ls 1> stdout.txt 2> stderr.txt

Para ver el archivo stdout.txt, usamos este comando:

$ cat stdout.txt

Para ver el archivo stderr.txt, usamos este comando:

$ cat stderr.txt

Redirigir stdout y stderr usando un solo comando

Como podemos ver, redirigimos la salida estándar y el error estándar a los archivos en un solo comando. La salida del comando ls se almacenará en el archivo stdout.txt, y el relleno stderr.txt permanecerá vacío porque no habrá ningún error.

Así es como podemos redirigir la salida estándar y el error estándar a un archivo con solo usar un comando.

Esperamos que encuentre útil este artículo de Linux para comprender cómo redirigir la salida estándar y el error estándar de cualquier comando a un archivo en Bash.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Artículo relacionado - Linux File