Oggi un comando semplicissimo che fa una sola cosa molto utile, in perfetta filosofia Unix: tee. Prende l’output del comando che gli passiamo in una pipe e lo scrive su un file, mostrandolo anche sullo schermo. Il nome viene dal raccordo a T dell’idraulica, quello che sdoppia il flusso dell’acqua: qui, visto che parliamo di pipe, cioè di tubi, l’idea calza a pennello.
L’uso base
Prendiamo un comando qualunque, il mio classico ls. Voglio salvarne l’output in un file ma anche vederlo a schermo. Con la redirezione normale il file si crea, ma sullo schermo non compare niente: per vedere cosa c’è dentro devo aprire il file.
ls > prova.txt
Con tee invece vediamo l’output del comando sullo schermo e, insieme, otteniamo il file con lo stesso contenuto:
ls | tee prova.txt
L’output è stato sdoppiato: una copia sullo standard output, una copia nel file.
Aggiungere invece di sovrascrivere
Il comportamento normale di tee è sovrascrivere il file di destinazione. Se invece vogliamo aggiungere in fondo, si usa l’opzione -a (append):
ls | tee -a prova.txt
L’output a schermo è lo stesso, ma se ora facciamo cat del file vediamo che l’output del comando compare due volte: la seconda è stata accodata alla fine.
cat prova.txt
Per finire
tee è davvero semplice e, come dicevo, questa è praticamente la sola opzione utile che ha. Con questo vi ho detto tutto. Aprite la vostra Linux box e provatelo.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- tee(1), pagina di manuale — il manuale completo
- tee(1) in italiano — in italiano
- pipe(7), pagina di manuale — come funzionano le pipe
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
ma se vuoi offrirmi un caffè, mi aiuterà a rimanere sveglio mentre registro i video 😁☕
clicca qui per scoprire come https://buymeacoffee.com/thelinuxnerd
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
