Anexando salida con tee
Por defecto, el comando tee sobrescribe el archivo de destino cada vez que se utiliza. Sin embargo, en muchos escenarios, es posible que desees agregar nueva información a un archivo existente en lugar de reemplazar su contenido. Aquí es donde la opción -a (anexar) resulta útil.
Comprender la opción de anexar
Navega al directorio del proyecto si aún no estás allí:
cd /home/labex/project
Primero, creemos un archivo con información del sistema:
uname -a | tee system_info.log
Este comando mostrará la información de tu sistema en la terminal y la guardará en system_info.log. La salida se verá algo así (tu salida puede ser diferente):
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Ahora, veamos el contenido del archivo:
cat system_info.log
Deberías ver la misma información del sistema.
Ahora, anexemos más información a este archivo utilizando la opción -a:
echo "Date and time: $(date)" | tee -a system_info.log
Esto mostrará algo como:
Date and time: Wed May 3 14:22:34 UTC 2023
La bandera -a le dice a tee que anexe la salida al archivo en lugar de sobrescribirlo.
Veamos el contenido del archivo nuevamente:
cat system_info.log
Ahora deberías ver tanto la información del sistema como la fecha:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Anexemos aún más información a nuestro archivo de registro:
echo "Disk usage:" | tee -a system_info.log
df -h | tee -a system_info.log
Esto mostrará información de uso de disco y la anexará a nuestro archivo de registro. La salida variará según tu sistema, pero podría verse algo así:
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Verifiquemos el contenido de nuestro archivo de registro una vez más:
cat system_info.log
Ahora deberías ver toda la información que hemos agregado:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
Comprender la estructura del comando
La sintaxis para anexar con tee es:
command | tee -a filename
Donde:
command es cualquier comando que produzca salida
| (tubería) envía la salida del comando a tee
tee es el comando en sí
-a es la opción para anexar al archivo en lugar de sobrescribirlo
filename es el nombre del archivo donde se anexará la salida
Este enfoque es especialmente útil para:
- Construir archivos de registro con el tiempo
- Capturar la salida de múltiples comandos en un solo archivo
- Mantener un registro de los estados o operaciones del sistema