Cuando trabaja con la terminal en Linux, hay muchas utilidades de línea de comandos disponibles para facilitarle la vida. Una de esas utilidades es Tee
. En esta breve guía, aprenderemos qué es Tee y el uso del comando Tee en Linux con ejemplos prácticos.
Introducción al comando Tee
El tee es una utilidad de línea de comandos simple que acepta entradas y escribe la salida en un archivo y salida estándar (es decir, terminal). El comando Tee se usará principalmente en scripts de shell cuando desee redirigir la salida a varios archivos y procesar aún más la salida.
El comando Tee es parte de GNU coreutils
, por lo que viene preinstalado con todas las distribuciones de Linux.
Para verificar si el comando tee está disponible en su distribución de Linux, ejecute el siguiente comando:
$ which tee /usr/bin/tee
Para verificar la versión de la camiseta, puede usar --version
bandera.
$ tee --version tee (GNU coreutils) 8.32
Mostrar la ayuda del comando tee
Si nunca ha usado el comando tee, es una buena práctica comenzar con la sección de ayuda del comando tee.
Puede acceder a la página de manual del comando tee para obtener más información sobre esta utilidad.
$ man tee
También puede pasar el --help
argumento al comando tee para mostrar su manual de ayuda.
$ tee --help
Sintaxis del comando Tee
La sintaxis típica del comando Tee se da a continuación:
tee [OPCIÓN]… [ARCHIVO]…
Acepta banderas y nombre de archivo donde se redirigirá la salida.
Hay dos banderas importantes que usará principalmente con el comando tee.
-a
,--append
bandera :Agregar a los archivos.-i
,-ignore-interrupts
bandera :Ignorar señales de interrupción.
Ahora permítame mostrarle algunos ejemplos del comando tee en Linux.
Ejemplos de comandos de Linux Tee para principiantes
Como ya se indicó, el comando tee aceptará la entrada e imprimirá la salida en el terminal, así como un archivo que se pasa como argumento.
En el siguiente ejemplo, el comando tee recibe información del echo
comando e imprime la salida en la terminal, así como en hello.txt
archivo.
$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix
Revisemos el contenido de hello.txt
archivo:
$ cat hello.txt Welcome to OSTechNix
Utilice el comando en T con el operador de tubería
El comando Tee no es solo para imprimir la entrada estándar en la terminal, y también canalizarla a otro programa para su posterior procesamiento.
En su mayoría, el comando tee se usará en combinación con pipe
(|) operador en scripts de shell.
Eche un vistazo al siguiente ejemplo.
$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world
Déjame explicarte lo que sucede cuando ejecutas el comando anterior.
- El
echo
el comando enviará su salida"Hello World"
como entrada altee
comando a través de la tubería. Tee
El comando almacenará la salida en el archivo dadohello.txt
.- En lugar de imprimir la salida en el terminal, que es el comportamiento predeterminado, el
tee
pase de comando"Hello World"
cadena como entrada arev
comando que imprime la cadena en orden inverso .
Aquí hay otro ejemplo.
El siguiente comando crea un directorio llamado "ostechnix", cuenta el número de caracteres en "ostechnix" e imprime "ostechnix" en la terminal:
$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)
Aviso: Es posible que deba usar sudo
con la tee
comando si crea archivos en directorios a los que no tiene acceso como usuario normal.
Pasar varios archivos
El comando Tee también acepta varios archivos como argumentos y almacena la salida en cada archivo.
$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix
Revisemos el contenido de cada archivo:
$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix
Anular vs agregar
El comportamiento predeterminado de la tee
El comando es buscará si el archivo ya está disponible y anulará los datos con el nuevo. Si el archivo no está disponible, lo creará.
Si desea agregar los datos en lugar de anularlos, use -a
o --append
bandera.
$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop
Combinar T con operador de redirección
Si no desea imprimir la salida en el terminal sino simplemente escribir la salida en archivos, puede combinar el operador de redirección con el comando tee.
Este es un caso ideal solo si el comando tee es el último en su cadena de tuberías. Si la salida en T se canaliza a otro comando como
como se muestra en el primer ejemplo, no es necesario utilizar el operador de redirección.
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null
Señales de interrupción
El comando Tee tiene la opción de interrumpir SIGINT usando -i
o --ignore-interrupts
bandera.
Significado:si presionas CTRL + C
en su terminal mientras ejecuta el comando tee con -i
bandera, el comando tee interrumpirá la señal y hará una salida elegante leyendo EOF del PIPE.
$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world
Resumen
Tee es un programa simple que no puede usar a diario. Sin embargo, conocer el comando tee será útil cuando escriba scripts de shell. Espero que esto ayude.