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.