Kako spremiti izlaz naredbe u datoteku u Bashu (tzv. Linux i MacOS terminal)
Kada pokrenete naredbu u bash promptu, on normalno ispisuje izlaz te naredbe izravno terminalu tako da ga možete odmah pročitati. Ali bash vam također omogućuje "preusmjeravanje" izlaza bilo koje naredbe, spremanje u tekstualnu datoteku kako biste kasnije mogli pregledati izlaz.
Ovo radi u bash-u na bilo kojem operativnom sustavu, od Linuxa i MacOS-a do Ubuntu-baziranog okruženja Windows 10.
Prva mogućnost: Preusmjeravanje izlaza samo u datoteku
Da biste koristili preusmjeravanje bash-a, pokrenuli ste naredbu, odredite >
ili >>
operatora, a zatim unesite put datoteke na koju želite da se izlaz preusmjeri.
-
>
preusmjerava izlaz naredbe u datoteku, zamjenjujući postojeći sadržaj datoteke. -
>>
preusmjerava izlaz naredbe u datoteku, dodajući izlaz postojećem sadržaju datoteke.
Tehnički, to preusmjerava "stdout" - standardni izlaz, koji je zaslon-u datoteku.
Evo jednostavnog primjera. ls
naredba navodi datoteke i mape u trenutnom direktoriju. Tako. kada pokrenete sljedeću naredbu, ls
će popisati datoteke i mape u trenutnom direktoriju. Ali neće ih ispisati na zaslon - spremit će ih u datoteku koju navedete.
ls> / put / u / datoteku
Ne morate specificirati put do postojeće datoteke. Navedite bilo koju važeću putanju i bash će stvoriti datoteku na tom mjestu.
Ako pregledate sadržaj datoteke, vidjet ćete ls
izlaz naredbe. Na primjer, mačka
naredba ispisuje sadržaj datoteke na terminal:
mačka / put / u / datoteku
Zapamtite
operater zamjenjuje postojeći sadržaj datoteke izlazom naredbe. Ako želite spremiti izlaz više naredbi u jednu datoteku, upotrijebite >
umjesto toga. Na primjer, sljedeća naredba dodaje informacije o sustavu u datoteku koju navedete:>>
uname -a >> / put / u / datoteku
Ako datoteka već ne postoji, bash će stvoriti datoteku. Inače, bash će ostaviti postojeći sadržaj datoteke sam i dodati izlaz na kraj datoteke.
Kada pregledate sadržaj datoteke, vidjet ćete da su rezultati druge naredbe dodani na kraj datoteke:
Taj postupak možete ponoviti onoliko puta koliko želite da nastavite izlaz na kraj datoteke.
Druga mogućnost: Ispis normalno i preusmjeriti na datoteku
Možda ne želite preusmjeriti izlaz s oznakom >
ili >>
operatora, jer nećete vidjeti izlaz naredbe u terminalu. To je ono što meta
naredba je za. T-naredba ispisuje ulaz koji prima na zaslon i istodobno ga sprema u datoteku.
Da biste ispustili izlaz naredbe meta
, ispisivanjem na zaslon i spremanjem u datoteku, koristite sljedeću sintaksu:
naredba | Tee / put / u / datoteku
To će zamijeniti sve što je u datoteci s izlazom naredbe, baš kao i >
operater.
Da biste ispustili izlaz naredbe meta
, ispisivanje na zaslon i spremanje u datoteku, ali dodavanje na kraj datoteke:
naredba | tee -a / put / u / datoteku
Ovo će dodati izlaz na kraj datoteke, baš kao i >>
operater.
Bash ljuska uključuje neke dodatne, napredne operatore koji obavljaju slične funkcije. Oni će biti osobito korisni ako pišete bash skripte. Za detaljnije informacije pogledajte poglavlje I / O Redirection u Advanced Bash-Scripting Guide.