Tricou

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 15 decembrie 2018; verificările necesită 4 modificări .

tee  este o comandă care afișează sau redirecționează rezultatul comenzii și o copiază într-un fișier sau variabilă. În primul rând, comanda este utilizată împreună cu redirecționări și filtre . Folosit într-o varietate de shell-uri ale sistemelor de operare, cum ar fi shell-uri Unix , 4DOS / 4NT și Windows PowerShell .

Scop și sintaxă

tee este folosit pentru a separa ieșirea programului, astfel încât datele să poată fi utilizate pentru afișare și salvate într-un fișier. De asemenea, comanda poate fi folosită pentru a obține date intermediare înainte de a fi modificată de un alt program sau comandă. Comanda tee citește intrarea standard (stdin) , apoi o scrie în ieșirea standard (stdout) și o copiază simultan într-un fișier sau variabilă pregătită. Sintaxa variază în funcție de locul în care este utilizată comanda.

UNIX

tee [-a] [-i] [Fișier ...]

Variabile:

Steaguri:

Când este terminată, comanda returnează următoarele valori de stare de ieșire :

Notă: Dacă scrierea în orice fișier deschis cu succes eșuează, datele sunt scrise în următorul fișier deschis cu succes, operand și ieșire standard (stdout) , dar starea de ieșire este >0.

Exemple

UNIX

program lint.c | program tee.lint

Această comandă va afișa ieșirea standard a comenzii lint program.cpe mediul de ieșire, în același timp va salva ieșirea într-un fișier program.lint. Dacă un astfel de fișier există deja, acesta va fi suprascris.

program lint.c | tee -a program.lint

Ca și în exemplul anterior, datele din comandă vor fi afișate pe ecran lint program.c, după care aceste date vor fi atașate la sfârșitul fișierului program.lint. Dacă un astfel de fișier nu există, acesta va fi creat.

echo „Corpul fișierului...” | sudo tee root_owned_file > /dev/null

Acest exemplu demonstrează cum să utilizați tee pentru a ocoli limitările comenzii sudo , care o împiedică să redirecționeze ieșirea ( stdout ) către un fișier. Și redirecționarea ulterioară către /dev/nullva evita trimiterea textului către consolă.

ls ./qwerty 2>&1 | tee ls.log

În mod implicit, comanda tee scrie doar date din STDOUT în fișier, așa că dacă fișierul „qwerty” nu se află în directorul curent, fișierul ls.log va lista fișierele și directoarele prezente și nu va înregistra un fișier negăsit. Ieșirile STDOUT și STDERR vor fi afișate pe ecran. Dacă fișierul trebuie să includă și date de la STDERR, atunci este necesar, ca în exemplul de mai sus, să redirecționați STDERR către STDOUT.