Hjemmeside » hvordan » Sådan gemmer du en kommandos output til en fil i basen (også Linux og MacOS Terminal)

    Sådan gemmer du en kommandos output til en fil i basen (også Linux og MacOS Terminal)

    Når du kører en kommando ved bash-prompten, udskriver den normalt udgangen af ​​den kommando direkte til terminalen, så du kan læse den med det samme. Men bash giver dig også mulighed for at "omdirigere" output fra en kommando, gemme den til en tekstfil, så du kan gennemgå produktionen senere.

    Dette fungerer i bash på ethvert operativsystem, fra Linux og MacOS til Windows 10s Ubuntu-bash-miljø.

    Mulighed One: Omdirigere output til kun en fil

    Hvis du vil bruge bash omdirigering, kører du en kommando, skal du angive > eller >> operatør, og angiv derefter stien til en fil, du vil have omdirigeret output til.

    •  > omdirigerer output fra en kommando til en fil, erstatter det eksisterende indhold af filen.
    •  >> omdirigerer output fra en kommando til en fil og tilføjer output til det eksisterende indhold af filen.

    Teknisk omdirigerer denne "stdout" -standarden output, som er skærmen til en fil.

    Her er et simpelt eksempel. Det ls Kommandoen lister filer og mapper i den aktuelle mappe. Så. når du kører følgende kommando, ls vil liste filer og mapper i den aktuelle mappe. Men det vil ikke udskrive dem på skærmen. Det gemmer dem til den fil, du angiver.

    ls> / sti / til / fil

    Du behøver ikke at angive stien til en eksisterende fil. Angiv en gyldig sti og bash vil oprette en fil på den pågældende placering.

    Hvis du ser indholdet af filen, vil du se ls kommandoens output. F.eks kat kommandoen udskriver indholdet af en fil til terminalen:

    cat / path / to / file

    Husk, at >  operatør erstatter det eksisterende indhold af filen med udgangen af ​​kommandoen. Hvis du vil gemme udgangen af ​​flere kommandoer til en enkelt fil, skal du bruge >> operatør i stedet. F.eks. Vil følgende kommando tilføje systemoplysninger til filen du angiver:

    uname -a >> / path / to / file

    Hvis filen ikke allerede eksisterer, vil bash oprette filen. Ellers vil bash udelade det eksisterende indhold af filen alene og tilføje output til slutningen af ​​filen.

    Når du ser indholdet af filen, vil du se resultaterne af din anden kommando blev tilføjet til slutningen af ​​filen:

    Du kan gentage denne proces så mange gange, som du kan lide at holde vedhæftede output til slutningen af ​​filen.

    Mulighed to: Udskriv output normalt og omdirigere det til en fil

    Du kan ikke lide at omdirigere output med > eller >> operatører, da du ikke vil se output af kommandoen i terminalen. Det er hvad tee kommandoen er til. T-kommandoen udskriver den indgang, den modtager på skærmen og gemmer den til en fil på samme tid.

    At rør udgangen af ​​en kommando til tee, udskrive den på din skærm og gemme den til en fil, brug følgende syntaks:

    kommando | tee / bane / til / fil

    Dette vil erstatte alt i filen med udgangen af ​​kommandoen, ligesom den > operatør.

    At rør udgangen af ​​en kommando til tee , udskrives til din skærm og gemmer den til en fil, men tilføjer den til slutningen af ​​filen:

    kommando | tee -a / path / to / file

    Dette vil tilføre output til slutningen af ​​filen, ligesom den >> operatør.

    Bash shell indeholder nogle ekstra avancerede operatører, der udfører lignende funktioner. De vil være særligt nyttige, hvis du skriver bash scripts. Se kapitlet om I / O-omdirigering i Advanced Bash-Scripting Guide for mere detaljerede oplysninger.