Usar tee en Linux para mostrar la salida de un comando por pantalla y guardarla en un archivo

Cuando queremos guardar la salida de un comando en un archivo utilizamos el operador de redirección simple >. Si deseamos agregar más contenido posteriormente usamos el operador de redirección doble >>. En el caso de que queramos enviar la salida de un comando como entrada a otro empleamos el operador tubería |. ¿Pero qué sucede cuando deseamos ver la salida de un comando por pantalla Y guardar el resultado en un archivo? Por eso en este post explicaremos cómo usar tee en Linux para lograr ambas cosas simultáneamente.

Usar tee en Linux

Veamos un ejemplo trivial primero. Como sabemos, el comando

ls -l

nos mostrará un listado detallado de los contenidos del directorio actual. Esto incluye permisos, dueño, grupo propietario, y fecha de última modificación de cada ítem, entre otros datos. Al complementar este comando con una tubería y enviando la salida hacia tee lograremos nuestro objetivo. La salida será visible por pantalla y será guardada en el archivo listado.txt:

ls -l | tee listado.txt

Veamos el resultado en la Fig. 1:

Usar tee en Linux: guardar el resultado de un comando en un archivo
Figura 1 – Usar tee en Linux: guardar el resultado de un comando en un archivo

Otro ejemplo

Ahora pasemos a un ejemplo más útil. Para guardar el resultado de consultas sucesivas a una base de datos MySQL o MariaDB podemos hacer lo siguiente. Utilizaremos dos consultas para ilustrar el concepto, aunque el principio es válido para la cantidad que sea.

El siguiente comando devolverá todos los registros de la tabla tbl_articulos (ubicada dentro de la base de datos gestion) y los guardará en el archivo datos.txt:

mysql -u root -p -e "USE gestion; SELECT * FROM tbl_articulos;" | tee datos.txt

A continuación realizaremos una segunda consulta, esta vez a la tabla tbl_presupuestos. Utilizaremos la opción --append para que los resultados se agreguen al archivo en vez de borrar los contenidos anteriores:

mysql -u root -p -e "USE gestion; SELECT * FROM tbl_presupuestos;" | tee --append datos.txt

En la Fig. 2 podemos ver el contenido de datos.txt luego de las dos consultas anteriores:

Usar tee en Linux: guardar los resultados de dos consultas a una base de datos en un archivo
Figura 2 – Usar tee en Linux: guardar los resultados de dos consultas a una base de datos en un archivo

Espero que este post les haya resultado útil. ¡Nos encontramos en el próximo!

Deja una respuesta