Explicación del comando tee de Linux (con ejemplos)

Cuando ejecuta comandos básicos en el terminal, la salida generalmente se imprime en el terminal, es decir, salida estándar. Pero, ¿qué pasaría si también pudiera guardar la salida en un archivo e imprimirla en la salida estándar? Esto es lo que hace el comando tee. El comando tee de Linux lee desde stdin (entrada estándar) y luego escribe en stdout (salida estándar) así como en un archivo o varios archivos.

Sintaxis básica del comando tee

El comando tee tiene la siguiente sintaxis.

$ comando | tee [ options ] archivo (s)

Probemos ahora algunos example usos del comando tee.

Uso básico del comando tee

Suponga que queremos imprimir la memoria e intercambiar el uso usando el gratis comando y guarde la salida en un archivo llamado memory_usage.txt. El comando tee se invocaría de la siguiente manera.

$ libre -h | tee memory_usage.txt

El comando tee lee el comando, guarda la salida en el memory_usage.txt archivo y luego lo imprime a la salida estándar.

Para confirmar que la salida se guardó en el memory_usage.txt archivo ejecute el comando cat como se muestra.

$ cat memory_usage.txt

Escribe la salida en varios archivos

Además, puede guardar la salida en varios archivos como se muestra

$ comando | tee [ options ] archivo1 archivo2…

En el siguiente comando, la cadena “Hola, bienvenido a Linux” se guarda en los dos archivos de texto: file1.txt y file2.txt

$ echo Hola, bienvenido a Linux | tee file1.txt file2.txt

Agregar contenido a un archivo

Por lo general, el comando tee sobrescribe un archivo, y esto no siempre es deseable, ya que puede borrar datos existentes que son cruciales. Afortunadamente, puedes usar el -a opción para agregar texto a un archivo. Probemos esto.

Primero, escribiremos la salida del tiempo de actividad comando al stats.txt archivo como se muestra.

$ tiempo de actividad | tee stats.txt

Utilizar el gato comando para verificar esto.

$ cat stats.txt

A continuación, agregaremos la salida del libre -h comando que imprime nuestra memoria y el uso de intercambio en el archivo.

$ libre -h | tee -a stats.txt

Una vez más, verifique el contenido del stats.txt Archivo. Esta vez, el archivo llevará la salida de los dos comandos como se indica en la captura de pantalla a continuación. Esto se debe a que agregamos la salida del libre -h comando al stats.txt archivo y, por lo tanto, el texto existente no se vio afectado.

Agregar contenido al archivo

Suprime la salida del comando tee

Si no desea tener la salida del tee comando impreso en salida estándar, puede redirigirlo a / dev / null que es un dispositivo especial que descarta la información que se le alimenta.

Toma el example debajo de donde estamos imprimiendo la salida del df -Th comando al archivo de texto pero suprimiendo la salida en el terminal.

$ df -Th | tee disk_usage.txt> / dev / null

Suprime la salida del comando tee

Deje que el comando tee ignore las interrupciones

A veces, es posible que desee detener un comando que se ejecuta continuamente. Cuando eso suceda, puede considerar hacer que el comando tee salga con gracia incluso después de la interrupción del programa. Para lograr esto, use el -I o –Ignore-interrupciones opción proporcionada en la sintaxis mostrada.

$ comando | tee -i nombre de archivo

El siguiente comando ping envía continuamente solicitudes de ping al DNS de Google (8.8.8.8). Hemos interrumpido el comando después de 4 solicitudes de ping sucesivas. Para el tee comando para salir con gracia, invoque el -I opción.

$ ping 8.8.8.8 | tee -i ping_stats.txt

Ignorar interrupciones

Sin el -I opción, la salida y el resumen de las estadísticas no se imprimirían.

Resultado

Utilice el comando tee con sudo

Al modificar archivos propiedad del usuario root o de un usuario de inicio de sesión diferente, simplemente use el comando tee sin invocar el sudo El comando producirá un error.

En el example a continuación, estamos creando un nuevo repositorio llamado anydesk-stable.list para la aplicación AnyDesk en el /etc/apt/sources.list.d ruta que es una reserva para el usuario root.

$ echo “deb https://deb.anydesk.com/ all main” | tee /etc/apt/sources.list.d/anydesk-stable.list

Como era de esperar, nos encontramos con un error de “permisos denegados” porque no tenemos los permisos para crear o modificar un archivo en esa ruta.

Utilice el comando tee con sudo

La solución es preceder tee con el sudo comando como se muestra.

$ echo “deb https://deb.anydesk.com/ all main” | sudo tee /etc/apt/sources.list.d/anydesk-stable.list

En esta ocasión, el comando es un éxito después de colocar sudo antes del tee.

sudo  comando de tee

Obtén ayuda con el comando tee

Para obtener más opciones de comando y ayuda para usar el comando tee, ejecute el siguiente comando.

$ tee –help

opciones de ayuda del comando tee

Además, explore las páginas de manual como se muestra

$ camiseta de hombre

página de manual del comando tee

Para verificar la versión, ejecute:

$ tee –version

Verifique la versión del comando tee

Resumen

Se trata del comando tee de Linux. En particular, el comando lee de entrada estándar (stdin) y luego escribe en salida estándar (stdout) y archivo (s).