Hjemmeside » hvordan » Slik lagrer du utdataene til en kommando til en fil i Bash (også Linux og MacOS Terminal)

    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.