Tee

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 15. joulukuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

tee  on komento , joka näyttää tai ohjaa komennon tulosteen ja kopioi sen tiedostoon tai muuttujaan. Ensisijaisesti komentoa käytetään yhdessä uudelleenohjausten ja suodattimien kanssa . Käytetään useissa käyttöjärjestelmän kuorissa, kuten Unix- , 4DOS / 4NT- ja Windows PowerShell -kuorissa .

Tarkoitus ja syntaksi

teetä käytetään erottamaan ohjelman tulosteet, jotta tietoja voidaan käyttää näyttöön ja tallentaa tiedostoon. Komentoa voidaan käyttää myös välitietojen saamiseksi ennen kuin toinen ohjelma tai komento muuttaa sitä. Tee-komento lukee vakiosyötteen (stdin) , kirjoittaa sen sitten vakiolähtöön (stdout) ja kopioi sen samanaikaisesti valmisteltuun tiedostoon tai muuttujaan. Syntaksi vaihtelee sen mukaan, missä komentoa käytetään.

UNIX

tee [-a] [-i] [Tiedosto ...]

Muuttujat:

Liput:

Kun komento on valmis, se palauttaa seuraavat poistumistilan arvot :

Huomautus: Jos kirjoittaminen onnistuneesti avautuneeseen tiedostoon epäonnistuu, tiedot kirjoitetaan seuraavaan onnistuneesti avautuneeseen tiedostoon, operandiin ja vakiolähtöön (stdout) , mutta poistumistila on >0.

Esimerkkejä

UNIX

nukkaa ohjelma.c | tee ohjelma.lint

Tämä komento näyttää komennon vakiotulosteen tulostusvälineellä lint program.c, samalla kun se tallentaa tulosteen program.lint. Jos tällainen tiedosto on jo olemassa, se korvataan.

nukkaa ohjelma.c | tee -a program.lint

Kuten edellisessä esimerkissä, komennon tiedot näytetään näytöllä lint program.c, minkä jälkeen nämä tiedot liitetään tiedoston loppuun program.lint. Jos tällaista tiedostoa ei ole, se luodaan.

echo "Tiedoston runko..." | sudo tee root_owner_file > /dev/null

Tämä esimerkki osoittaa, kuinka teetä käytetään sudo-komennon rajoitusten kiertämiseen , mikä estää sitä ohjaamasta tulostetta ( stdout ) tiedostoon. Ja edelleen uudelleenohjaus osoitteeseen /dev/nullvälttää tekstin tulostamisen konsoliin.

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

Oletusarvoisesti tee-komento kirjoittaa vain tietoja STDOUT-tiedostosta tiedostoon, joten jos tiedosto "qwerty" ei ole nykyisessä hakemistossa, ls.log-tiedosto listaa olemassa olevat tiedostot ja hakemistot eikä tallenna tiedostoa, jota ei löydy. Sekä STDOUT- että STDERR-lähdöt näkyvät näytöllä. Jos tiedoston on sisällettävä myös STDERR:n tietoja, on välttämätöntä, kuten yllä olevassa esimerkissä, ohjata STDERR STDOUTiin.