Introducción
El tee
lee la entrada estándar y escribe tanto en la salida estándar como en uno o más archivos simultáneamente. tee
se utiliza principalmente junto con otros comandos a través de tuberías.
En este tutorial, cubriremos los conceptos básicos del uso del comando tee
Sintaxis del comando Tee
La sintaxis del tee
es la siguiente:
tee [OPTIONS] [FILE]
OPTIONS
:-a
(--append
): no sobrescriba archivos en lugar de agregarlos a archivos de datos.-i
(--ignore-interrupts
) - Ignora las señales de interrupción.- Utilice
tee --help
para ver todas las opciones disponibles. FILE_NAMES
: uno o más archivos. Cada uno de los cuales se escriben los datos de salida.
Cómo usar el comando Tee
El uso más básico de la tee
comando es para ver el estándar de stdout
salida de un programa y escribir en un archivo.
En el siguiente ejemplo, usamos el df
para obtener información sobre la cantidad de espacio en disco disponible en el sistema de archivos. La salida se redirige al tee
, que muestra la salida en el terminal y escribe la misma información en el archivo disk_usage.txt
df -h | tee disk_usage.txt
Filesystem Size Used Avail Use% Mounted on
dev 7.8G 0 7.8G 0% /dev
run 7.9G 1.8M 7.9G 1% /run
/dev/nvme 212G 159G 43G 79% /tmpfs 7.9G 357M 7.5G 5% /dev/shm
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 7.9G 15M 7.9G 1% /tmp
/dev/nvme 511M 107M 405M 21% /boot
/dev/sda1 459G 165G 271G 38% /data
tmpfs 1.6G 16K 1.6G 1% /run/user/120
Puede ver el contenido del disk_usage.txt
usando el comando cat.
Escribir en varios archivos
El tee
también puede escribir en varios archivos. Para hacer esto, especifique una lista de archivos separados por espacios como argumentos:
command | tee file1.out file2.out file3.out
Agregar al archivo
De forma predeterminada, el tee
sobrescribirá el archivo especificado. Use la -a
( --append
) para agregar la salida al archivo:
command | tee -a file.out
Ignorar descanso
Para ignorar las interrupciones, use la -i
( –ignore-interrupt
). Esto es útil cuando detiene el comando mientras ejecuta CTRL + C.
command | tee -i file.out
Ocultar la salida
Si no desea que el tee
escriba en la salida estándar, puede redirigirlo a /dev/null
:
command | tee file.out >/dev/null
Usar camisetas junto con sudo
Supongamos que desea escribir en un archivo propiedad de root como usuario sudo. El siguiente comando fallará porque sudo no realiza la redirección de salida. La redirección se realiza como un usuario sin privilegios.
sudo echo "newline" > /etc/file.conf
La salida se verá así:
bash: /etc/file.conf: Permission denied
Simplemente anteponga sudo
antes del tee
como se muestra a continuación:
echo "newline" | sudo tee -a /etc/file.conf
tee
recibirá la salida del comando echo, aumentará los permisos para sudo y escribirá en el archivo.
El uso de tee
junto con el sudo
le permitirá escribir en archivos propiedad de otros usuarios.
Conclusión
El tee
lee la entrada estándar y la escribe en la salida estándar y en uno o más archivos.