El comando tee lee la entrada estándar ( stdin) y la escribe tanto en la salida estándar ( stdout) como en uno o más archivos. Básicamente, es una «T» que divide el flujo de datos.
1. El uso básico
Si quieres ver el resultado de un comando en la terminal pero también quieres que se guarde en un archivo, haz esto:
ls -la | tee mis_archivos.txt
¿Qué pasó aquí?
ls -lalista todo.- El pipe
|le pasa esa info altee. teela imprime en tu pantalla y la guarda enmis_archivos.txt. ¡Magia! ✨
2. El modo «No borres lo que ya puse» (-a)
Por defecto, tee borra todo lo que haya en el archivo antes de escribir (como cuando borro mis mensajes después de que me contestan, jaja). Si quieres añadir información al final sin borrar lo anterior, usa el flag -a (de append).
echo "No quiero borrar lo que ya hay" | tee -a diario.txt
Ahora, «No quiero borrar lo que ya hay» se agregó al final de diario.txt. ¡Inteligente, ¿verdad? 😉
3. Escribir en varios archivos a la vez
¿Para qué hacer el trabajo una vez si puedes hacerlo en tres archivos al mismo tiempo? Solo pon los nombres separados por espacios:
echo "Ariadna es la reina" | tee archivo1.txt archivo2.txt archivo3.txt
¡Pum! El mensaje quedó guardado en los tres. Eficiencia total. 💅
4. El Truco maestro: sudo tee
A veces quieres escribir en un archivo que requiere permisos de administrador (como en /etc/), pero si haces sudo echo "algo" > /etc/archivo, ¡no funciona! Porque el redireccionamiento > lo hace tu usuario, no el sudo.
Ahí es donde entra el truco:
echo "dns-server 8.8.8.8" | sudo tee /etc/resolv.conf
Aquí, el sudo se aplica directamente al tee, así que puede escribir en archivos protegidos sin que Linux te diga que no tienes permiso. I love power. 😈
📝 Resumen para que no se te olvide:
| Comando | ¿Qué hace? | Vibe |
|---|---|---|
tee archivo | Escribe y muestra | Directa y clara |
tee -a archivo | Añade sin borrar | Conservadora |
sudo tee archivo | Escribe como root | The Boss |