Comandi: tee
Supponiamo di voler ordinare una lista e voler contemporaneamente vederla e salvarne il contenuto in un file. Con i normali operatori di redirezione e pipe non si può fare, Per fortuna c'è tee che provvede a salvare su un file il cui nome viene specificato come argomento quanto proviene dallo stdin e a inviarlo contemporanamente allo stdout.
Ad esempio:
$ ls / | sort | tee test.txt
bin
boot
cdrom
dev
etc
home
[...]
In questo esempio l'output di ls / | sort viene visualizzato e contemporaneamente salvato nel file test.txt.
Possiamo anche usare l'output di tee in un altro comando tramite una pipe:
$ ls / | tee test.txt | sort -r
vmlinuz.old
vmlinuz
var
usr
tmp
sys
[...]
Qui abbiamo salvato nel file test.txt l'ouput di ls / e contemporaneamente lo abbiamo passato al comando sort -r che poi lo visualizza in ordine alfabetico inverso.
Nel file test.txt invece i dati saranno nell'ordine originale proposto da ls:
$ cat test.txt
bin
boot
dev
etc
home
cdrom
[...]
Eventualmente è possibile fare in modo che tee accodi i dati al file specificato, invece di creare un file nuovo, usando lo switch -a (che sta per append).
Ad esempio:
$ ls | tee -a test.txt | sort -r
accoda al file test.txt la lista dei file della directory corrente e poi la stampa in ordine alfabetico inverso.