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.