Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Linux umožňuje uložit výstup příkazu do souborů jako prostředek přesměrování výstupu. Když uložíte výstup do souboru pomocí > nebo >> operátory, výstup se přesměruje, aniž by se na terminálu zobrazily žádné informace.

Co když ale chcete výstup vytisknout na obrazovku a zároveň jej uložit do souboru? Ačkoli to nelze provést pomocí operátorů přesměrování výstupu, je to možné provést pomocí příkazu tee v Linuxu.

Základní syntaxe příkazů

tee je standardní linuxový nástroj používaný k rozdělení výstupu příkazu mezi standardní výstup a soubory.

Na rozdíl od většiny příkazů Linuxu se tee používá s jinými programy pomocí potrubí (|). Operátor potrubí – jeden z mnoho operátorů příkazového řádku v Linuxu – umožňuje programu použít jako vstup výstup jiného příkazu. Možná jste použili dýmku při použití grep vedle příkaz ls nebo kočka.

Základní syntaxe příkazu tee je:

příkaz | možnosti tee cesta k souboru

...kde možnosti a cesta k souboru jsou argumenty příkazového řádku a cesta k souboru, do kterého chcete uložit výstup.

Rozdělený terminálový výstup na Linuxu s tee

Nejjednodušší použití tee je rozdělit výstup tak, aby byl zobrazen v terminálu, a také jej uložit do souboru. Chcete-li například uložit výstup příkazu ls do textového souboru s názvem "výstup.txt," spustit:

ls | tee ./output.txt

Výstup zobrazí obsah aktuálního pracovního adresáře jako obvykle. Při kontrole souboru output.txt zjistíte, že tee také uložil výstup do souboru.

Když zadáte cestu k souboru, tee zkontroluje, zda soubor existuje. Pokud žádný nenajde, automaticky vytvoří soubor za vás, takže jej lze pohodlně použít ve skriptech shellu. Je to užitečné, když chcete protokolovat výstup programu nebo skriptu pro pozdější použití.

Chcete-li číst nebo ukládat data do souboru vlastněného uživatelem root, musíte před příkazem tee uvést sudo.

Pokud jsou v zadaném souboru uložena data, která nechcete přepsat, použijte -A vlajka do připojit výstup do souboru, místo vymazání celého souboru a následného uložení dat:

ls | tee -a ./output.txt

Podobně můžete výstup přesměrovat do více souborů zadáním cest oddělených jednou mezerou:

ls | tee ./output1.txt ./output2.txt

Někdy se mohou objevit neočekávané chyby nebo ruční přerušení (pomocí Ctrl + C nebo Ctrl + Z) v předchozím příkazu může způsobit ukončení tee. Chcete-li taková přerušení ignorovat, použijte -i vlajka:

ls | tee -i output.txt

Na získat nápovědu příkazového řádku pokud jde o tričko nebo najít podrobnosti o verzi, použijte --Pomoc a --verze příznaky takto:

tričko --pomoc
triko -- verze

Přesměrování výstupu na jiný příkaz

Výstupní řetězec můžete vytvořit propojením s jinými příkazy Linuxu. Pokud tak učiníte, uloží se výstup do zadaného souboru a poté se předá dalšímu příkazu ke zpracování.

K přesměrování výstupu tee na jiný příkaz použijte následující formát:

příkaz | cesta k souboru tee | jiný příkaz

Například následující příkaz uloží výstup příkazu ls do výstup.txt před konečným přesměrováním na grep pro rychlé vyhledávání:

ls | tee output.txt | grep "Dokumenty"

Celkově si můžete pohrát pomocí příkazu tee standardní vstup a výstup na Linuxu.

Manipulace s výstupem a textem pomocí příkazů Linuxu

Příkaz tee přidává ke standardním operátorům přesměrování výstupu v Linuxu tolik potřebnou funkčnost. Můžete jej dokonce použít k manipulaci s výstupem příkazu před jeho předáním jinému programu.

Podobně můžete upravovat text pomocí terminálu pomocí některých standardních příkazů Linuxu. Může chvíli trvat, než si na ně zvyknou, ale nakonec se manipulaci s textem přes příkazový řádek vyplatí naučit každý správce systému.