4Sep
Når du kjører en kommando ved bash-prompten, skriver den vanligvis utgangen av den kommandoen direkte til terminalen slik at du kan lese den umiddelbart. Men bash tillater deg også å "omdirigere" utdataene til en kommando, lagre den i en tekstfil, slik at du kan se utgangen senere.
Dette fungerer i bash på ethvert operativsystem, fra Linux og MacOS til Windows 10s Ubuntu-bash-miljø.
Alternativ One: Omdirigere utdata til en fil bare
Hvis du vil bruke bash-omdirigering, kjører du en kommando, spesifiser & gt;eller & gt; & gt;operatør, og deretter gi banen til en fil du vil ha omdirigert omdirigering til.
- & gt;omadresserer utgangen av en kommando til en fil, erstatter det eksisterende innholdet i filen.
- & gt; & gt;omdirigerer utgangen av en kommando til en fil, og legger til utgangen til det eksisterende innholdet i filen.
Teknisk omdirigerer dette "stdout" - standardutgangen, som er skjermen til en fil.
Her er et enkelt eksempel. Kommandoen ls viser filer og mapper i gjeldende katalog. Så.Når du kjører følgende kommando, vil jeg liste filer og mapper i gjeldende katalog. Men det vil ikke skrive ut dem til skjermen - det vil lagre dem til filen du angir.
ls & gt;/path/to/-filDu trenger ikke å spesifisere banen til en eksisterende fil. Angi hvilken som helst gyldig bane og bash vil opprette en fil på den plasseringen.
Hvis du ser innholdet i filen, ser du kommandoen ls kommandoen. For eksempel skriver kattkommandoen innholdet i en fil til terminalen:
-katt /path/to/-filHusk at & gt;operatør erstatter det eksisterende innholdet i filen med utgangen av kommandoen. Hvis du vil lagre utdataene fra flere kommandoer til en enkelt fil, bruker du & gt; & gt;operatør i stedet. For eksempel vil følgende kommando legge til systeminformasjon til filen du angir:
uname -a & gt; & gt;/path/to/-filHvis filen ikke allerede eksisterer, vil bash opprette filen. Ellers vil bash legge ut det eksisterende innholdet i filen alene og legge til utgangen til slutten av filen.
Når du ser innholdet i filen, ser du resultatene av den andre kommandoen din vedlagt til slutten av filen:
Du kan gjenta denne prosessen så mange ganger som du vil beholde tilleggsutgang til slutten av filenfil.
Alternativ to: Skriv ut utdata normalt og omdiriger det til en fil
Du kan kanskje ikke omdirigere utdata med & gt;eller & gt; & gt;operatører, da du ikke ser utgangen av kommandoen i terminalen. Det er hva tee-kommandoen er for. T-kommandoen skriver ut inngangen den mottar til skjermen og lagrer den til en fil samtidig.
Bruk følgende syntaks til å pipe utgangen av en kommando til tee, skrive den ut på skjermen og lagre den i en fil:
-kommando |tee /path/to/-filDette vil erstatte alt i filen med utdataene fra kommandoen, akkurat som & gt;operatør.
Å pippe utgangen av en kommando til tee, skrive ut til din skjerm og lagre den i en fil, men legg den til slutten av filen:
kommando |tee-en /path/to/-filDette vil legge til utgangen til slutten av filen, akkurat som & gt; & gt;operatør.
Den bash shell inneholder noen ekstra, avanserte operatører som utfører lignende funksjoner. De vil være spesielt nyttige hvis du skriver bash-skript. Ta kontakt med I / O-omadresseringskapitlet i Advanced Bash-Scripting Guide for mer detaljert informasjon.