Linux vám umožňuje uložiť výstup príkazu do súborov ako prostriedok na presmerovanie výstupu. Keď uložíte výstup do súboru pomocou > alebo >> operátorov, výstup sa presmeruje bez toho, aby sa na termináli zobrazili žiadne informácie.
Čo ak však chcete výstup vytlačiť na obrazovku a súčasne ho uložiť do súboru? Aj keď to nemôžete urobiť pomocou operátorov presmerovania výstupu, je to možné urobiť pomocou príkazu tee v systéme Linux.
Základná syntax príkazov
tee je štandardný nástroj Linuxu, ktorý sa používa na rozdelenie výstupu príkazu medzi štandardný výstup a súbory.
Na rozdiel od väčšiny príkazov Linuxu sa tee používa s inými programami pomocou potrubia (|). Operátor potrubia – jeden z mnoho operátorov príkazového riadku v systéme Linux – umožňuje programu použiť ako vstup výstup iného príkazu. Možno ste použili fajku pri použití grepu príkaz ls alebo mačka.
Základná syntax príkazu tee je:
príkaz | tee options filepath
...kde možnosti a cesta k súboru sú argumenty príkazového riadka a cesta k súboru, do ktorého chcete uložiť výstup.
Rozdelený výstup terminálu na Linuxe s tee
Najjednoduchšie použitie tee je rozdeliť výstup na jeho zobrazenie v termináli, ako aj jeho uloženie do súboru. Napríklad na uloženie výstupu príkazu ls do textového súboru s názvom "output.txt,“ spustiť:
ls | tee ./output.txt
Výstup zobrazí obsah aktuálneho pracovného adresára ako obvykle. Pri kontrole súboru output.txt zistíte, že tee uložil aj výstup do súboru.
Keď zadáte cestu k súboru, tee skontroluje, či súbor existuje. Ak nenájde žiadny, automaticky vytvorí súbor za vás, takže je vhodný na použitie v skriptoch shellu. Je to užitočné, keď chcete zaznamenať výstup programu alebo skriptu pre neskoršie použitie.
Ak chcete čítať alebo ukladať údaje do súboru, ktorý vlastní užívateľ root, musíte zadať príkaz tee pomocou sudo.
Ak sú v zadanom súbore uložené údaje, ktoré nechcete prepísať, použite príkaz -a vlajka do priložiť výstup do súboru namiesto vymazania celého súboru a následného uloženia údajov:
ls | tee -a ./output.txt
Podobne môžete výstup presmerovať do viacerých súborov zadaním ciest oddelených jednou medzerou:
ls | tee ./output1.txt ./output2.txt
Niekedy sa môžu vyskytnúť neočakávané chyby alebo manuálne prerušenia (pomocou Ctrl + C alebo Ctrl + Z) v prvom príkaze môže spôsobiť ukončenie tee. Ak chcete ignorovať takéto prerušenia, použite -i vlajka:
ls | tee -i output.txt
Komu získať pomoc príkazového riadku pokiaľ ide o tričko alebo nájdete podrobnosti o verzii, použite --Pomoc a --verzia príznaky takto:
tričko --pomoc
tričko -- verzia
Presmerovanie výstupu na iný príkaz
Výstupný reťazec môžete vytvoriť prepojením s inými príkazmi systému Linux. Ak tak urobíte, uloží sa výstup do určeného súboru a potom sa odovzdá ďalšiemu príkazu na spracovanie.
Na presmerovanie výstupu tee na iný príkaz použite nasledujúci formát:
príkaz | cesta k súboru tee | iný príkaz
Napríklad nasledujúci príkaz uloží výstup príkazu ls do output.txt pred konečným presmerovaním na grep na rýchle vyhľadávanie:
ls | tee output.txt | grep "Dokumenty"
Celkovo môžete použiť príkaz tee na hranie štandardný vstup a výstup v systéme Linux.
Manipulácia s výstupom a textom pomocou príkazov Linuxu
Príkaz tee pridáva veľmi potrebné funkcie k štandardným operátorom presmerovania výstupu v systéme Linux. Môžete ho dokonca použiť na manipuláciu s výstupom príkazu pred jeho odovzdaním inému programu.
Podobne môžete upravovať text pomocou terminálu pomocou niektorých štandardných príkazov Linuxu. Môže chvíľu trvať, kým si na ne zvyknú, ale v konečnom dôsledku sa manipulácia s textom cez príkazový riadok oplatí naučiť sa každému správcovi systému.