systemadmin.es > Utilidades > Uso de tee: Herramientas UNIX (XII)

Uso de tee: Herramientas UNIX (XII)

Al ejecutar comandos que sacan mucha información resulta muy útil tanto ver lo que sale mientras se esta ejecutando como mantener un registro de su salida, especialmente si los datos cambian a cada ejecución. Mediante el comando script podemos almacenar una sesión interactiva, vamos a ver el comando tee para redirigir lo que le pasamos tanto a stdout como a un fichero.

Un ejemplo simple de tee es el siguiente:

$ echo systemadmin.es | tee tee.save
systemadmin.es

Pasamos al tee la salida del comando echo y le indicamos un fichero. Al ejecutarlo lo que tendremos es la salida normal por pantalla i además la misma salida guardada en el fichero que le hemos indicado:

$ cat tee.save 
systemadmin.es

Esta característica puede ser muy útil para, por ejemplo, crear firmas de lo que nos descargamos. Si usamos wget para descargar un fichero le podemos indicar que lo escriba por stdout (-O –) y lo redirigimos al tee que le indicamos que lo escriba en el fichero dvd-ejemplo.iso. Con la salida que aún nos queda por stdout podemos usar un md5sum para crear la firma y la guardamos en un fichero, por ejemplo dvd-ejemplo.md5:

wget -O - http://systemadmin.es/dvd-ejemplo.iso | tee dvd-ejemplo.iso | md5sum > dvd-ejemplo.md5

Además mediante la opción -a podemos indicar al tee que escriba a partir del fin del fichero que le indicamos:

$ echo systemadmin.es | tee tee.save
systemadmin.es
$ echo 2 systemadmin.es | tee -a tee.save
2 systemadmin.es
$ cat tee.save 
systemadmin.es
2 systemadmin.es

Evidentemente también podemos indicar como fichero el mismo stdout, con lo que repetiremos el contenido:

$ echo systemadmin.es | tee -
systemadmin.es
systemadmin.es

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>