4Sep
Keď spustíte príkaz na výzvu bash, normálne vytlačí výstup tohto príkazu priamo do terminálu, aby ste si ho mohli ihneď prečítať.Ale bash vám tiež umožňuje "presmerovať" výstup ľubovoľného príkazu a uložiť ho do textového súboru, aby ste mohli neskôr skontrolovať výstup.
Toto funguje v bash na ľubovoľnom operačnom systéme, od Linuxu a MacOS po Windows bash prostredia Windows 10.
Možnosť jedna: Presmerovanie výstupu do súboru
Ak chcete použiť presmerovanie bash, spustite príkaz, zadajte reťazec & gt;alebo>operátora a potom zadajte cestu k súboru, na ktorý chcete presmerovať výstup.
- & gt;presmeruje výstup príkazu do súboru a nahrádza existujúci obsah súboru.
- >presmeruje výstup príkazu do súboru a pripojí výstup k existujúcemu obsahu súboru.
Technicky to presmeruje "stdout" - štandardný výstup, ktorým je obrazovka - do súboru.
Tu je jednoduchý príklad. Príkaz ls uvádza zoznam súborov a priečinkov v aktuálnom adresári. So.keď spustíte nasledujúci príkaz, ls zobrazí zoznam súborov a priečinkov v aktuálnom adresári. Nevytlačí ich na obrazovku - uloží ich do zadaného súboru.
ls>/path/to/ súborNemusíte špecifikovať cestu k existujúcemu súboru. Zadajte akúkoľvek platnú cestu a bash vytvorí súbor na danom mieste.
Ak uvidíte obsah súboru, uvidíte výstup príkazu ls. Príkaz cat napríklad vytlačí obsah súboru do terminálu:
mačka /path/to/ súborPamätajte, že & gt;operátor nahradí existujúci obsah súboru výstupom príkazu. Ak chcete uložiť výstup viacerých príkazov do jedného súboru, použite & gt; & gt;namiesto operátora. Napríklad nasledujúci príkaz pripojí systémové informácie k zadanému súboru:
uname -a & gt; & gt;/path/to/ súborAk súbor ešte neexistuje, bash vytvorí súbor. V opačnom prípade bude bash ponechať samotný obsah súboru a pripojiť výstup na koniec súboru.
Keď uvidíte obsah súboru, uvidíte, že výsledky druhého príkazu boli pripojené na koniec súboru:
Tento proces môžete opakovať toľkokrát, koľkokrát chcete, aby výstup zostal pripojený na koniec súboru.súboru.
Druhý variant: Normálne vytlačiť výstup a presmerovať ho do súboru
Možno nebudete chcieť presmerovať výstup s & gt;alebo>operátorov, pretože nevidíte výstup príkazu v termináli. To je to, čo je odpoveď pre tee. Príkaz tee vytlačí vstup, ktorý prijme, na obrazovku a ju uloží do súboru súčasne.
Ak chcete vytlačiť výstup príkazu, ktorý ho vytlačí, vytlačíte ho na obrazovku a uložíte ho do súboru, použite nasledovnú syntax: príkaz
|tee /path/to/ súborTýmto sa nahradí všetko v súbore výstupom príkazu, rovnako ako & gt;operátor.
Ak chcete vytlačiť výstup príkazu na odpoveď, vytlačiť na obrazovku a uložiť ho do súboru, ale pripojiť ho na koniec súboru: príkaz
|tee -a /path/to/ súborPripojí sa výstup ku koncu súboru, rovnako ako & gt; & gt;operátor.
Bash shell obsahuje niektoré ďalšie, pokročilé operátory, ktoré vykonávajú podobné funkcie. Budú to obzvlášť užitočné, ak píšete bash skripty. Podrobnejšie informácie nájdete v kapitole Presmerovanie I / O v príručke Advanced Bash-Scripting Guide.