GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del comando Linux tee per principianti (6 esempi)

Ci sono momenti in cui si desidera tenere traccia manualmente dell'output di un comando e anche assicurarsi contemporaneamente che l'output venga scritto su un file in modo da potervi fare riferimento in seguito. Se stai cercando uno strumento Linux che possa fare questo per te, sarai felice di sapere che esiste un comando tee che è stato creato per questo scopo.

In questo tutorial, discuteremo le basi del comando tee usando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi utilizzati in questo articolo sono stati testati su Ubuntu 16.04 LTS.

Comando Linux tee

Il comando tee legge sostanzialmente dallo standard input e scrive sullo standard output e sui file. Di seguito è riportata la sintassi del comando:

tee [OPZIONE]... [FILE]...

Ed ecco come lo spiega la pagina man:

Copia l'input standard in ogni FILE e anche nell'output standard.

I seguenti esempi in stile domande e risposte dovrebbero darti un'idea migliore di come funziona il comando.

Q1. Come usare il comando tee in Linux?

Supponiamo che tu stia usando il comando ping per qualche motivo.

ping su google.com

E quello che vuoi è che anche l'output venga scritto in un file in parallelo. Allora ecco dove puoi usare il comando tee.

ping google.com | tee output.txt

Lo screenshot seguente mostra che l'output è stato scritto nel file 'output.txt' insieme ad essere scritto su stdout.

Quindi dovrebbe cancellare l'uso di base di tee.

Q2. Come assicurarsi che tee aggiunga informazioni nei file?

Per impostazione predefinita, il comando tee sovrascrive le informazioni in un file quando viene utilizzato di nuovo. Tuttavia, se lo desideri, puoi modificare questo comportamento utilizzando l'opzione della riga di comando -a.

[comando] | tee -a [file]

Quindi, in pratica, l'opzione -a obbliga tee ad aggiungere informazioni al file.

Q3. Come fare in modo che tee scriva su più file?

È abbastanza facile. Devi solo menzionare i loro nomi.

[comando] | tee [file1] [file2] [file3]

Ad esempio:

ping su google.com | tee output1.txt output2.txt output3.txt

Q4. Come fare in modo che tee reindirizzi l'output di un comando a un altro?

Non solo puoi usare tee per scrivere simultaneamente l'output nei file, ma anche per passare l'output come input ad altri comandi. Ad esempio, il comando seguente non solo memorizzerà i nomi dei file in 'output.txt' ma ti farà anche sapere, tramite wc, il numero di voci nel file output.txt.

ls* | tee output.txt | wc -l

Q5. Come scrivere su un file con privilegi elevati usando tee?

Supponiamo di aver aperto un file nell'editor Vim, apportato molte modifiche, e poi quando hai provato a salvare quelle modifiche, hai ricevuto un errore che ti ha fatto capire che si tratta di un file di proprietà di root, il che significa che devi avere i privilegi sudo per salvare queste modifiche.

In scenari come questi, puoi usare tee per elevare i privilegi in movimento.

:w !sudo maglietta %

Il comando di cui sopra ti chiederà la password di root e quindi ti consentirà di salvare le modifiche.

Q6. Come fare in modo che tee ignori l'interruzione?

L'opzione della riga di comando -i consente a tee di ignorare il segnale di interruzione (SIGINT ), che di solito viene emesso quando si preme la combinazione di tasti crl+c.

[comando] | tee -i [file]

Questo è utile quando vuoi terminare il comando con ctrl+c ma vuoi che tee esca con grazia.

Conclusione

Probabilmente sarai d'accordo ora che tee è un comando estremamente utile. Abbiamo discusso del suo utilizzo di base e della maggior parte delle opzioni della riga di comando qui. Lo strumento non ha una curva di apprendimento ripida, quindi fai pratica con tutti questi esempi e dovresti essere a posto. Per ulteriori informazioni, vai alla pagina man dello strumento.


Linux
  1. Spiegazione del comando di incollaggio Linux per principianti (5 esempi)

  2. Spiegazione del comando Linux wc per principianti (6 esempi)

  3. Spiegazione del comando di Linux unexpand per principianti (con esempi)

  4. Spiegazione del comando di uscita di Linux per principianti (con esempi)

  5. Spiegazione del comando objdump di Linux per principianti (7 esempi)

Spiegazione del comando di timeout di Linux per i principianti (con esempi)

Spiegazione del comando Linux dd per principianti (8 esempi)

Spiegazione del comando Linux mv per principianti (8 esempi)

Spiegazione del comando Linux md5sum per principianti (5 esempi)

Spiegazione del comando host Linux per principianti (8 esempi)

Linux Tee Command Tutorial con esempi per principianti