4Sep
Kada pokrenete naredbu u brzom upitu, normalno ispisuje izlaz te naredbe izravno na terminal, tako da je možete odmah pročitati. No bash također vam omogućuje da "preusmjeri" izlaz bilo koje naredbe, spremite ga u tekstualnu datoteku tako da možete pregledati izlaz kasnije.
Ovo radi u bash na bilo kojem operativnom sustavu, od Linuxa i MacOS-a do Ubuntu-baziranog bash okruženja.
Prva opcija: preusmjeriti izlaz na datoteku samo
Da biste koristili preusmjeravanje basha, pokrenite naredbu, odredite & gt;ili>operatoru, a zatim navedite put datoteke koju želite usmjeriti.
- >preusmjerava izlaz naredbe u datoteku, zamjenjujući postojeći sadržaj datoteke.
- >preusmjerava izlaz naredbe u datoteku, dodajući izlaz na postojeći sadržaj datoteke.
Tehnički, ovo preusmjerava "stdout" - standardni izlaz, koji je zaslon na datoteku.
Evo jednostavnog primjera. Naredba ls navodi datoteke i mape u trenutnom direktoriju. Tako.kada pokrenete sljedeću naredbu, ls će popis datoteka i mapa u trenutnom direktoriju. No neće ih ispisati na zaslonu - spremit će ih u datoteku koju navedete.
ls & gt;/path/to/ datotekaNe morate navesti put do postojeće datoteke. Navedite bilo koji valjani put i bash će stvoriti datoteku na toj lokaciji.
Ako pogledate sadržaj datoteke, vidjet ćete izlaz ls naredbe. Na primjer, mačka naredba ispisuje sadržaj datoteke na terminal:
mačka /path/to/ datotekaZapamtite, & gt;operator zamjenjuje postojeći sadržaj datoteke s izlazom naredbe. Ako želite spremiti izlaz više naredbi u jednu datoteku, upotrijebite oznaku & gt; & gt;umjesto toga. Na primjer, sljedeća naredba će dodati informacije o sustavu datoteci koju navedete:
uname -a & gt; & gt;/path/to/ datotekaAko datoteka već ne postoji, bash će stvoriti datoteku. U suprotnom, bash će ostaviti postojeći sadržaj datoteke i dodati izlaz do kraja datoteke.
Kada pregledavate sadržaj datoteke, vidjet ćete rezultate vaše druge naredbe koji su dodani do kraja datoteke:
Možete ponoviti taj postupak onoliko puta koliko želite zadržati dodavanje ispisa do kraja datotekedatoteka.
Opcija Dva: ispis normalno i preusmjeravanje na datoteku
Možda vam se ne sviđa preusmjeravanje izlaza pomoću & gt;ili>kao što nećete vidjeti izlaz naredbe na terminalu. To je ono za što je naredba za tis. Tee naredba ispisuje ulaz koji prima na zaslon i ga sprema u datoteku u isto vrijeme.
Da biste crtali izlaz naredbe za tisak, ispisivanje na zaslon i spremanje u datoteku, upotrijebite sljedeću sintaksu: naredba
|tee /path/to/ datotekaOvo će zamijeniti bilo što u datoteci s izlazom naredbe, baš kao i & gt;operater.
Da biste ispisali izlaz naredbe za tis, ispisujete na zaslon i spremite ga u datoteku, ali dodavajući ga do kraja datoteke:
naredba |tee -a /path/to/ datotekaOvo će dodati izlaz na kraj datoteke, baš kao i & gt; & gt;operater.
Shema bash sadrži neke dodatne, napredne operatore koji obavljaju slične funkcije. Bit će osobito korisno ako pišete bash skripte. Više pojedinosti potražite u poglavlju Preusmjeravanje I / O u Advanced Bash-Scripting Guideu.