Ako uložiť výstup príkazu do súboru v Bash (aka terminál Linux a MacOS)

Obsah:

Ako uložiť výstup príkazu do súboru v Bash (aka terminál Linux a MacOS)
Ako uložiť výstup príkazu do súboru v Bash (aka terminál Linux a MacOS)

Video: Ako uložiť výstup príkazu do súboru v Bash (aka terminál Linux a MacOS)

Video: Ako uložiť výstup príkazu do súboru v Bash (aka terminál Linux a MacOS)
Video: Making Custom Length Ethernet Cables - YouTube 2024, Apríl
Anonim
Keď spustíte príkaz na výzvu bash, normálne sa vytlačí výstup tohto príkazu priamo do terminálu, aby ste si ho mohli okamžite 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.
Keď spustíte príkaz na výzvu bash, normálne sa vytlačí výstup tohto príkazu priamo do terminálu, aby ste si ho mohli okamžite 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.

To funguje v bash na ľubovoľnom operačnom systéme, od Linuxu a MacOS až po Windows Ubuntu.

Možnosť jedna: presmerovanie výstupu na iba súbor

Ak chcete použiť presmerovanie bash, spustite príkaz a zadajte príkaz

>

alebo

>>

operátora a potom zadajte cestu k súboru, na ktorý chcete presmerovať výstup.

  • >

    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.

ls

príkaz obsahuje zoznam súborov a priečinkov v aktuálnom adresári. So. keď spustíte nasledujúci príkaz,

ls

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/file

Nemusíte určovať cestu k existujúcemu súboru. Zadajte akúkoľvek platnú cestu a bash vytvorí súbor na danom mieste.

Ak si prezriete obsah súboru, uvidíte
Ak si prezriete obsah súboru, uvidíte

ls

príkazu. Napríklad

cat

príkaz vytlačí obsah súboru do terminálu:

cat /path/to/file

Nezabudnite, že
Nezabudnite, že

>

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

>>

namiesto operátora. Napríklad nasledujúci príkaz pripojí informácie o systéme k zadanému súboru:

uname -a >> /path/to/file

Ak súbor ešte neexistuje, súbor 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 zopakovať toľkokrát, koľkokrát chcete, aby výstup zostal pripojený na koniec súboru.
Tento proces môžete zopakovať toľkokrát, koľkokrát chcete, aby výstup zostal pripojený na koniec súboru.

Možnosť druhá: Výstup tlače normálne a presmerovanie do súboru

Nesmiete radi presmerovať výstup pomocou

>

alebo

>>

operátorov, pretože nevidíte výstup príkazu v termináli. To je to, čo

tee

príkaz je pre. Príkaz tee vytlačí vstup, ktorý prijíma, na obrazovku a uloží ho súčasne do súboru.

Pripojenie výstupu príkazu do

tee

tlač na obrazovku a uloženie do súboru použite nasledujúcu syntax:

command | tee /path/to/file

Tým sa nahradí všetko v súbore s výstupom príkazu, rovnako ako

>

operátor.

Pripojenie výstupu príkazu do
Pripojenie výstupu príkazu do

tee

tlač na vašu obrazovku a uloženie do súboru, ale pridanie do konca súboru:

command | tee -a /path/to/file

Tým sa pripojí výstup na koniec súboru, rovnako ako

>>

operátor.

Odporúča: