Redirige la salida de comandos de Linux a un archivo

¿Quieres analizar el efecto de un comando de Linux para más tarde? Aquí te explicamos cómo puedes guardar la salida de un comando de Linux en un archivo.
Warp Terminal

En ocasiones, es posible que desees redirigir la salida de un resultado específico hacia un archivo para poder examinar el error más adelante.

Y en ese caso, puedes redirigir el flujo de datos hacia un archivo. Así que, en este tutorial, te guiaré a través de cómo redirigir la salida hacia un archivo.

Cómo redirigir la salida a un archivo

Antes de adentrarnos en la parte práctica, es necesario comprender los conceptos básicos de los flujos de datos.

Existen tres tipos de flujos de datos:

  • Flujo de datos de entrada (denotado como 0)
  • Flujo de datos de salida (denotado como 1)
  • Flujo de datos de error (denotado como 2)
🗒️
No puedes utilizar 0 para redirigir el flujo de datos de entrada. Para hacerlo, debes usar < o puedes utilizar una tubería (pipe) con comandos.

Ahora, echemos un vistazo a los símbolos y números de redirección en Linux:

Indicador Descripción
0 Flujo de datos de entrada.
1 Flujo de datos de salida.
2 Flujo de datos de error.
> Redirige la salida estándar hacia un archivo o comando.
< Redirige la entrada estándar desde un archivo o comando.
>> Agrega la salida estándar al final de un archivo.
2> Redirige el error estándar hacia un archivo o comando.
2>> Agrega el error estándar al final de un archivo.

Echemos un vistazo a ejemplos.

Redirigir la salida a un archivo (sobrescribe los datos existentes)

Como mencioné anteriormente, debes utilizar el símbolo > de la siguiente manera:

$ comando > nombre_de_archivo

Por ejemplo, aquí utilicé el comando sudo apt update y redirigí la salida al archivo actualizar.txt.

$ sudo apt update > actualizar.txt
[sudo] password for marcocarmonapy: 

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Y ahora, si utilizo el comando 'cat' para mostrar el contenido del archivo, debería mostrar la salida del comando 'apt update':

$ cat actualizar.txt 
Get:1 file:/var/cuda-repo-ubuntu2204-12-2-local  InRelease [1 572 B]
Get:1 file:/var/cuda-repo-ubuntu2204-12-2-local  InRelease [1 572 B]
Get:2 https://dl.google.com/linux/chrome/deb stable InRelease [1 825 B]
Get:3 http://packages.microsoft.com/repos/code stable InRelease [3 569 B]
Hit:34 https://debian.qgis.org/debian jammy InRelease
Fetched 4 178 kB in 5s (779 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
All packages are up to date.

Pero espera, si acostumbras redirigir la salida de la manera mostrada, sobrescribirás el contenido existente del archivo, por lo que si no deseas sobrescribir el contenido, aquí te muestro cómo hacerlo.

Redireccionar la salida a un archivo sin sobrescribir

Como mencioné antes, si no deseas sobrescribir el contenido del archivo existente, utiliza >> en lugar de >:

$ comando >> nombre_de_archivo

Por ejemplo, en este caso, estaré utilizando un archivo de texto de muestra llamado hola.txt el cual contiene lo siguiente:

$ cat hola.txt
Hola, mundo
Saludos de Marco Carmona

Y ahora, utilizaré el comando "echo" y redirigiré la salida al archivo "hola.txt":

$ echo Lineas por ser agregadas >> hola.txt
$ cat hola.txt
Hola, mundo
Saludos de Marco Carmona
Lineas por ser agregadas

¡Aquí lo tienes!

Bono: Redirecciona la salida usando el comando "tee"

🚧
A diferencia de la redirección, al utilizar el comando "tee", solo puedes sobrescribir el contenido del archivo existente para redirigir sus datos.

Si no te agrada la idea de usar los indicadores de redirección, puedes emplear el comando tee de la siguiente manera para lograr el mismo efecto:

$ comando | tee nombre_de_archivo

Aquí utilicé el archivo llamado hola.txt, el cual ya contenía algún texto en su interior:

$ echo Hola, otra vez | tee hola.txt
$ cat hola.txt
Hola, otra vez

Espero que encuentres útil esta guía.

About the author
Marco Carmona

Marco Carmona

My name is Marco Antonio Carmona, I'm a physics and data science student, a great and passionate reader, and randomly, my favorite hobby is writing about what I learn day by day.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.