Slik lagrer du utdataene til en kommando til en fil i Bash (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 lar deg også "omdirigere" utdataene til en kommando, lagre den i en tekstfil, slik at du kan se utgangen senere.
Dette fungerer i bash på hvilket som helst operativsystem, fra Linux og MacOS til Windows 10s Ubuntu-bash-miljø.
Alternativ One: Omdirigere utgang til bare en fil
For å bruke bash omdirigering, kjører du en kommando, spesifiser >
eller >>
operatør, og deretter angi banen til en fil du vil ha omdirigert utdata til.
-
>
omadresserer utgangen av en kommando til en fil, erstatter det eksisterende innholdet i filen. -
>>
omdirigerer utdataene fra en kommando til en fil, og legger utdataene til det eksisterende innholdet i filen.
Teknisk omdirigerer dette stdout-standardutgangen, som er skjermen til en fil.
Her er et enkelt eksempel. De ls
Kommandoen viser filer og mapper i gjeldende katalog. Så. når du kjører følgende kommando, ls
vil liste filer og mapper i gjeldende katalog. Men det vil ikke skrive dem ut på skjermen - det vil lagre dem til filen du angir.
ls> / bane / til / fil
Du trenger ikke å spesifisere banen til en eksisterende fil. Angi hvilken som helst gyldig bane og bash vil opprette en fil på den aktuelle plasseringen.
Hvis du ser innholdet i filen, ser du ls
kommandoens utgang. For eksempel, katt
kommandoen skriver ut innholdet i en fil til terminalen:
katt / bane / til / fil
Husk at
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 >
operatør i stedet. For eksempel vil følgende kommando legge til systeminformasjon til filen du angir:>>
uname -a >> / path / to / file
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 ble vedlagt til slutten av filen:
Du kan gjenta denne prosessen så mange ganger som du vil beholde tilleggsutgang til slutten av filen.
Alternativ to: Skriv ut utdata normalt og omdirigere det til en fil
Du kan kanskje ikke omdirigere utdata med >
eller >>
operatører, da du ikke vil se utgangen av kommandoen i terminalen. Det er det som tee
kommandoen er for. T-kommandoen skriver ut inngangen den mottar på skjermen og lagrer den til en fil samtidig.
Å pipe utgangen av en kommando til tee
, skriv den ut på skjermen og lagre den i en fil, bruk følgende syntaks:
kommando | tee / bane / til / fil
Dette vil erstatte alt i filen med utgangen av kommandoen, akkurat som >
operatør.
Å pipe utgangen av en kommando til tee
, skriver ut til din skjerm og lagrer den til en fil, men legger den til slutten av filen:
kommando | tee -a / path / to / file
Dette vil legge til utgangen til slutten av filen, akkurat som >>
operatør.
Den bash shell inkluderer 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.