Guardando la salida por pantalla en un fichero con el comando tee

A veces, administrando servidores por linea de comandos, voy a hacer una tarea que se va a demorar mucho tiempo, quizás horas. Por ejemplo, compilar todas las actualizaciones e instalarlas en *BSD, sincronizar un repositorio, etc.

Muchas veces al ejecutar comandos importantes para el sistema es necesario estar atento a la pantalla por si salen mensajes de alerta que nos pueden ser de ayuda, pero es evidente que no podemos estar atentos al 100% con tareas de este tipo. Una solución cutre sería redireccionar el STDOUT (>) a un fichero, usaremos el comando find sólo como ejemplo, por poner algo:

# find / -name *.conf > salida

En este caso, salida contiene toda la salida que hubiese hecho por pantalla el comando en concreto, pero… ¿y si queremos ver la salida en tiempo real, y al mismo tiempo almacenarla en un fichero? Muy facil, vamos a usar tee:

# find / -name *.conf | tee salida

tee envía lo que recibe por el pipe hacia la salida standard STDOUT (la pantalla) y al mismo tiempo lo envia al fichero que le pasemos por parámetro… ¡voilà! Pero supongamos que no queremos escribir de cero el fichero salida como lo haríamos con > sinó añadir esos datos al final como haríamos con >>. En este caso tenemos que usar el parámetro -a (append):

# find / -name *.conf | tee -a salida

Hasta aquí esta mini-explicación de un comando muy útil pero muchas veces desconocido, olvidado o simplemente poco usado.

5 thoughts on “Guardando la salida por pantalla en un fichero con el comando tee

  1. Xavi M.

    Pues la verdad es que es realmente útil, yo lo hacia de la manera cutre, para salir del paso. En eso peco en exceso en hacer las cosas muy de salir del paso, pero tomo nota, no se como se hace en blogspot lo mirare, por post como estos, te dije si podia llevarlo a mi blog, son cosas que se escapan a veces, y tiro siempre de handbook …

  2. Xavi M.

    Perdona queria decir que no siempre tiro del handbook ni de chuletillas que tengo. Y en lo del blogspot que me quede a medias me referia al trackback ya me mirare con paciencia como funciona en blogspot

  3. admin

    En el post no he mencionado a tail ya que, aun siendo cierto que serviria como apaño, en el tiempo en que tecleamos el comando `tail -f fichero` ya nos hemos perdido parte de la salida por pantalla, pero con `… | tee fichero` es inmediato.

  4. Arenys

    iep hola,
    Solo decir que si queremos podemos escupirlo en un fichero de la forma cutre (> o >>), y cuando tengamos ganas de ver que hace o por donde va, hacer un tail -f fichero para ver como va aadiendo.

  5. Marcos

    Interessant la comanda tee que ja coneixia però no el paràmetre -a, que té la seva gràcia :-)

    pd: a veure quan te veiem per la fibra un altre cop… o quan me passo jo pel cine xDD

Comments are closed.