Tričko

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 15. prosince 2018; kontroly vyžadují 4 úpravy .

tee  je příkaz , který zobrazí nebo přesměruje výstup příkazu a zkopíruje jej do souboru nebo proměnné. Primárně se příkaz používá ve spojení s přesměrováním a filtry . Používá se v různých shellech operačních systémů, jako jsou unixové shelly , 4DOS / 4NT a Windows PowerShell .

Účel a syntaxe

tee se používá k oddělení výstupu programu, takže data lze použít pro zobrazení a uložit do souboru. Příkaz lze také použít k získání mezilehlých dat předtím, než je změní jiný program nebo příkaz. Příkaz tee načte standardní vstup (stdin) , poté jej zapíše na standardní výstup (stdout) a současně zkopíruje do připraveného souboru nebo proměnné. Syntaxe se liší podle toho, kde je příkaz použit.

UNIX

tričko [-a] [-i] [Soubor ...]

Proměnné:

Příznaky:

Po dokončení příkaz vrátí následující hodnoty stavu ukončení :

Poznámka: Pokud selže zápis do libovolného úspěšně otevřeného souboru, data se zapíší do dalšího úspěšně otevřeného souboru, operandu a standardního výstupu (stdout) , ale stav ukončení je >0.

Příklady

UNIX

lint program.c | tee program.lint

Tento příkaz zobrazí standardní výstup příkazu lint program.cna výstupní médium a zároveň uloží výstup do souboru program.lint. Pokud takový soubor již existuje, bude přepsán.

lint program.c | tee -a program.lint

Stejně jako v předchozím příkladu se data z příkazu zobrazí na obrazovce lint program.ca poté se tato data připojí na konec souboru program.lint. Pokud takový soubor neexistuje, bude vytvořen.

echo "Tělo souboru..." | sudo tee kořenový_soubor > /dev/null

Tento příklad ukazuje, jak pomocí tee obejít omezení příkazu sudo , který mu brání přesměrovat výstup ( stdout ) do souboru. A další přesměrování na /dev/nullzabrání textovému výstupu do konzole.

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

Ve výchozím nastavení zapisuje příkaz tee do souboru pouze data ze STDOUT, takže pokud soubor "qwerty" není v aktuálním adresáři, soubor ls.log vypíše seznam přítomných souborů a adresářů a nezaznamená nenalezený soubor. Na obrazovce se zobrazí výstupy STDOUT a STDERR. Pokud soubor potřebuje obsahovat i data ze STDERR, pak je nutné, jako v příkladu výše, přesměrovat STDERR na STDOUT.