Linux / Comando tee: mostrar y guardar la salida a la vez

tee envía la entrada estándar a la salida estándar mientras también graba el mismo contenido en uno o más archivos. Es útil cuando se desea ver resultados intermedios de la canalización mientras se guardan.

Por defecto, sobrescribe el archivo especificado. Para agregarlo al final del registro existente, use -a. A diferencia de la redirección normal >, también puede continuar pasando la entrada a los comandos posteriores de la canalización.

Sintaxis básica

comando | tee [opciones] archivo [archivo ...]

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man tee en el sistema actual.

Ejemplos de uso

Simultáneamente en pantalla y archivo

Guarda en el archivo mientras se observa la salida.

date | tee run-time.txt

Agregar al final del registro existente

-a añade al final del archivo.

date | tee -a run-time.txt

Guardar resultados intermedios y continuar procesando

Después de guardar los resultados de la ordenación, se continúa revisando solo la parte inicial.

sort names.txt | tee names.sorted | head

Resultados que se muestran en la pantalla y se guardan en un archivo al mismo tiempo

Para ver los resultados intermedios de la canalización en la pantalla mientras se guardan en un archivo, use tee.

printf 'status=ok\n' | tee result.txt

El mismo contenido aparecerá en pantalla y se guardará como una sola línea en result.txt.

status=ok

El comportamiento predeterminado es sobrescribir el archivo de destino. Para mantener el contenido existente y agregar al final, use tee -a result.txt. Para escribir en un archivo propiedad del administrador, a veces puede necesitar comando | sudo tee archivo en lugar de sudo comando > archivo. La redirección se realiza con los permisos actuales de la shell.

Opciones y formatos principales

Opciones·Formato Descripción
-a Agrega a un archivo existente sin sobrescribirlo.
-i Ignora señales de interrupción.
-p Ajusta la forma en que las implementaciones de GNU manejan los errores al escribir en tuberías.

Precauciones al usar

sudo comando > /ruta/protegida/archivo puede fallar si la shell actual no tiene permisos para realizar la redirección. En ese caso, se usa comando | sudo tee archivo, pero el contenido de entrada también se mostrará en la pantalla, así que tenga cuidado con valores confidenciales. La salida de errores no se pasa a tee por defecto.

Preguntas frecuentes

¿tee también guarda la salida de error estándar?

Por defecto, solo guarda el contenido que llega a la entrada estándar. Para incluir errores, indique la redirección de shell correspondiente según la situación.

Documentación oficial

Puede consultar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de tee.