4Sep

Slik lagrer du utdataene til en kommando til en fil i basen( også Linux og MacOS Terminal)

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

Du 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/-fil

Husk 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/-fil

Hvis 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/-fil

Dette 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/-fil

Dette 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.