Redirigir Stderr y Stdout a un archivo en Bash
- Salida estándar y error estándar en Linux
- Redirigir la salida estándar a un archivo en Bash
- Redirigir el error estándar a un archivo en Bash
- Redirigir la salida estándar y el error estándar 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 es0
. - Para la salida estándar (
stdout
), el id numérico es1
. - Para el error estándar (
stderr
), el id numérico es2
.
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:
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
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
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.
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