GNU/Linux >> Tutoriales Linux >  >> Linux

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, la salida estándar. Pero, ¿qué pasaría si también pudiera guardar la salida en un archivo e imprimirla a 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 toma la siguiente sintaxis.

comando $ | tee [opciones] archivo(s)

Veamos ahora algunos ejemplos de uso del comando tee.

Uso básico del comando tee

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

$ free -h | tee memory_usage.txt

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

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

$ cat memory_usage.txt

Escribir la salida en varios archivos

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

comando $ | tee [opciones] archivo1 archivo2 …

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

$ echo Hey, Welcome to Linux | tee file1.txt file2.txt

Adjuntar 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 -a opción para añadir 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 de $ | estadísticas de tee.txt

Usa el gato comando para verificar esto.

$ cat stats.txt

A continuación, agregaremos la salida de free -h comando que imprime nuestra memoria y cambia el uso al archivo.

$ free -h | tee -a stats.txt

Una vez más, verifique el contenido de stats.txt expediente. Esta vez, el archivo tendrá 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 de free -h comando al stats.txt archivo y, por lo tanto, el texto existente no se vio afectado.

Suprimir la salida del comando tee

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

Tome el siguiente ejemplo donde estamos imprimiendo la salida de df -Th comando al archivo de texto pero suprimiendo la salida en el terminal.

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

Permitir que el comando tee ignore las interrupciones

A veces, es posible que desee detener un comando que se ejecuta continuamente. Cuando eso suceda, podría considerar hacer que el comando tee salga correctamente incluso después de la interrupción del programa. Para lograr esto, use -i o –ignore-interrupts 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 la camiseta comando para salir correctamente, invoque el -i opción.

$ ping 8.8.8.8 | tee -i ping_stats.txt

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

Utilice el comando tee con sudo

Al modificar archivos propiedad del usuario raíz o de un usuario de inicio de sesión diferente, simplemente usar el comando tee sin invocar el comando sudo generará un error.

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

$ echo "deb http://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.

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

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

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

Obtenga ayuda con el comando tee

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

$ tee --help

Además, explore las páginas man como se muestra

$ man tee

Para comprobar la versión, ejecute:

$ tee --version

Resumen

Esto es todo sobre el comando tee de Linux. En particular, el comando lee desde la entrada estándar (stdin) y luego escribe en la salida estándar (stdout) y archivo(s).


Linux
  1. Comando wc Linux con ejemplos

  2. Comando Linux Tee con ejemplos

  3. Comando de apagado de Linux explicado con ejemplos

  4. Comando Traceroute de Linux, explicado con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

Comando Linux Cat explicado con ejemplos

Comando Tee en Linux explicado con ejemplos

Ejemplos de comandos tee de Linux

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