martes, 29 de marzo de 2011

Entendiendo el comando tee

El comando tee muestra la salida de un comando y también la copia o envía a un fichero o variable. Es utilizado, principalmente, en conjunto con las tuberías (pipes) y filtros. Cuando necesitamos ver la salida de un comando en pantalla (standar output) y también guardar dicha salida al mimo tiempo en un fichero utilizaremos el comando tee, como en el siguiente ejemplo.

ps a | tee ps.txt
Notemos que no es necesario utilizar el operador (>) de salida estándar con el comando tee. El nombre del fichero es utilizado como el argumento para tee.

Si repetimos otro comando y utilizamos tee para enviar dicha salida al mismo fichero este será sobreescrito con la nueva salida. Si queremos que en vez de ser sobreescrito el contenido sea añadido a dicho fichero dejando intacto el anterior, lo haremos con la opción -a.

ps aux | tee -a ps.txt

Es importante aclarar que tee no separa la salida de errores (stderr) de la salida estándar (stdout). Ambas van al mismo lugar.

Podemos usar tee para enviar la salida a dos comandos separados.
command1 | tee >(command2) >(command2) | command4

1 comentario: