tee
El comando tee nos permite capturar la información que fluye en una interconexión entre comandos y guardarla en un fichero o varios, sin interrumpir la interconexión.
La sintáxis habitual de tee dentro de una interconexión es la siguente:
orden1 | tee fichero... | orden2
La orden tee lo que hace es leer de la entrada estándar y mandar esta información a los ficheros especificados y a la salida estándar, así no interfiere en la interconexión de orden1 con orden2.
$ ls -l tmp | tee listado | wc -l
6
$ cat listado
total 40
-rw-r--r-- 1 usuario vboxsf 0 sep 3 19:27 carta.txt
-rw-r--r-- 1 usuario vboxsf 5541 sep 3 19:30 cp.man
drwxr-sr-x 2 usuario vboxsf 4096 sep 3 19:30 d
-rw-r--r-- 1 usuario vboxsf 20981 sep 3 19:28 ls.man
-rw-r--r-- 1 usuario vboxsf 4061 sep 3 19:29 rm.man
Los ficheros de la orden tee se crean si no existen o se sustituyen si existen. La opción noclobber no influye en tee, solo en los redireccionamientos.
Si queremos que los ficheros de tee no se sustituyan sino que la nueva información se añada a ellos, usaríamos la opción -a:
$ who | tee -a listado | wc -l
2
$ cat listado
total 40
-rw-r--r-- 1 usuario vboxsf 0 sep 3 19:27 carta.txt
-rw-r--r-- 1 usuario vboxsf 5541 sep 3 19:30 cp.man
drwxr-sr-x 2 usuario vboxsf 4096 sep 3 19:30 d
-rw-r--r-- 1 usuario vboxsf 20981 sep 3 19:28 ls.man
-rw-r--r-- 1 usuario vboxsf 4061 sep 3 19:29 rm.man
usuario tty7 2013-09-04 12:42 (:0)
usuario pts/0 2013-09-05 19:43 (:0)
Licencia: licencia de software libre GPL