Slik lagrer du kommandolinjeutgang til fil på Windows, Mac og Linux

Lagring av utdata fra en kommando til en fil er nyttig hvis du prøver å diagnostisere et problem, og det er veldig enkelt å gjøre.

Lagring av utdata fra en kommando til en fil er nyttig hvis du prøver å diagnostisere et problem, og det er veldig enkelt å gjøre.
Annonse

Når du kjører en kommando i et Terminal-vindu, skrives utgangen av kommandoen normalt til Terminal, eller på skjermen, slik at du kan lese den umiddelbart. Du kan også skrive ut resultatet av en kommando til en fil hvis du vil lagre den.

Lagring av utdata fra en kommando til en fil er nyttig hvis du prøver å diagnostisere et problem. For å få hjelp fra teknisk støtte, må du kanskje kjøre enkelte kommandoer på datamaskinen din og sende resultatene til supportteamet. Dette er enkelt ved å bruke omdirigering av utdata på kommandolinjen.

I dag skal vi dekke hvordan du sender utgangen av en kommando til en tekstfil i bash-skjermen på Windows, Mac og Linux.

Merk: Vi bruker Mac Terminal Disse 6 fantastiske Terminal Commands vil øke MacBook Disse 6 fantastiske Terminal Commands vil øke MacBook Du kan bare stappe så mye i grafisk brukergrensesnitt før det blir rotete, så det skal komme som ikke stort Overrask at du kan gjøre noen veldig kule ting ved hjelp av Mac Terminal. Les mer i vårt eksempel, men det fungerer på samme måte i bash-skallet på Linux 40+ Mest brukte Linux Terminal Commands 40 + Mest brukte Linux Terminal Commands Uansett om du bare begynner eller bare nysgjerrig på Linux-terminalen, her er det mest vanlige kommandoer som vil bære deg gjennom hele tiden på Linux. Les mer og i det nye bash-skallet i Windows 10 En rask guide til Linux Bash Shell i Windows 10 En rask guide til Linux Bash Shell i Windows 10 Du kan nå kjøre Linux på Windows. Lær mer om Bash på Windows, fra hvordan og hvorfor du bør installere den, til skjulte funksjoner du sikkert ikke visste om. Les mer .

Omdirigere utgang til bare en fil

Det er to operatører for å omdirigere utgangen av en kommando til en fil i stedet for skjermen.

Symbolet > Oppretter en ny fil hvis den ikke finnes, eller overskriver filen hvis den allerede finnes. >> lager også en ny fil hvis den ikke finnes, men den legger til teksten til slutten av filen hvis den allerede eksisterer, i stedet for å overskrive filen.

Merk deg selv: Når du omdirigerer et shell-skriptutgang til en fil, vil det ikke bli vist på konsollen :-) #StupidMe

- Xavier Mertens? (@ xme) 5. august 2017

For å omdirigere utdataene fra en kommando til en fil, skriv inn kommandoen, spesifiser > eller >> -operatoren, og angi deretter banen til en fil du vil sende omdirigert til. Kommandoen ls for eksempel viser filene og mappene i gjeldende katalog. Når du kjører følgende kommando, blir listen over filer og mapper skrevet til filen ls_output.txt i TerminalOutput- mappen.

Erstatt / bane / til / fil med hele banen til filen du vil bruke.

ls>/path/to/file 

Dette er kommandoen for vårt eksempel.

 ls>/Users/lorikaufman/TerminalOutput/ls_output.txt 

For å se innholdet i filen i Terminal-vinduet, bruk kattkommandoen som vist i kommandoen nedenfor. Igjen, erstatt / sti / til / fil med den fullstendige banen til filen du vil vise.

 cat /path/to/file 

lagre kommandolinjeutsendingsvinduer mac linux

Operatøren > erstatter innholdet i en eksisterende fil hver gang du bruker den til å omdirigere utdata. Hvis du vil lagre utdata fra flere kommandoer til en enkelt fil, bruk >> -operatoren i stedet. Dette legger til produksjonen av en kommando til slutten av den angitte filen, hvis den allerede eksisterer. Hvis filen ikke eksisterer, oppretter den en ny.

For eksempel legger vi til systeminformasjon til slutten av filen vi opprettet ovenfor. Så, i den følgende linjen, er uname -a kommandoen, etterfulgt av >> omadresseringsoperatøren. Deretter, den fulle banen til filen som vi vil legge til utgangen av uname- kommandoen.

-en parameter i kommandoen uname skriver ut all tilgjengelig systeminformasjon.

 uname -a>>/Users/lorikaufman/TerminalOutput/ls_output.txt 

For å vise filen med den vedlagte informasjonen i Terminal-vinduet, skriv inn følgende kommando, med hele banen til filen.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

Gjenta denne prosessen så mange ganger som du trenger for å fortsette å legge til kommandoen til slutten av filen.

lagre kommandolinjeutsendingsvinduer mac linux

Her er et annet eksempel på å sende utdataene fra ls- kommandoen som katalogtreet, med underkataloger oppført på rekursivt vis ( R- parameteren) og en fil per linje (den 1 parameteren).

 ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt 

Deretter bruker vi kattkommandoen, som tidligere nevnt, for å se innholdet i filen i Terminal-vinduet.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

lagre kommandolinjeutsendingsvinduer mac linux

Skriv ut utgang til skjerm og omdirigere den til en fil

Operatørene > og >> viser ikke utgangen av en kommando på skjermen. Utgangen sendes kun til en fil.

Hvis du vil sende utgangen til en fil og se den på skjermen, bruk kommandoen tee i stedet for > og >> operatørene.

Nerd varsel! I dag oppdaget jeg `tee` kommandoen, som rør til både en fil og standard ut. Unix fortsetter å glede seg. pic.twitter.com/aClIT8AdJB

- Zeke Sikelianos (@zeke) 29. august 2017

For å bruke tee- kommandoen må du pipe utgangen fra kommandoen du kjører, som ls, til tee- kommandoen, ved hjelp av røroperatøren, en vertikal bjelke ( | ). Følgende kommando tar for eksempel utgangen av kommandoen ls og piper den inn i tee- kommandoen. T- kommandoen sender deretter den utdata til skjermen og til en fil du angir ved å bruke hele banen til filen.

 ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt 

Kommandoen ovenfor erstatter alt innholdet i filen eller oppretter en ny hvis den ikke eksisterer, akkurat som > operatøren. Vi brukte følgende kattkommando for å se innholdet i filen vår i Terminal-vinduet.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

lagre kommandolinjeutsendingsvinduer mac linux

For å bruke tee- kommandoen til å skrive ut utdata til skjermen og legge den til enden av en fil, skriv inn følgende kommando. Her legger vi til full systeminformasjon til slutten av filen ved hjelp av kommandoen uname -a, akkurat som vi gjorde med >> -operatøren, men sendte også utdataene til skjermen.

 uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt 

lagre kommandolinjeutsendingsvinduer mac linux

Følgende kommando er tee- versjonen av å skrive ut et katalogtreet rekursivt til en fil og til skjermen, en fil på hver linje, akkurat som vi gjorde med > operatøren.

 ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt 

Deretter bruker vi kattkommandoen igjen for å se innholdet i filen.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

lagre kommandolinjeutsendingsvinduer mac linux

Men vent, det er mer

Det er mange flere måter å omdirigere utdata, inkludert feil, til en fil. Du kan lese om de forskjellige operatørene og kommandoene som brukes til å omdirigere utdata i I / O-omadresseringskapitlet i Advanced Bash Scripting Guide. Du kan også lære mer om å bruke kommandolinjen En hurtigveiledning for å komme i gang med Linux-kommandolinjen En rask guide for å komme i gang med Linux-kommandolinjen Du kan gjøre mange fantastiske ting med kommandoer i Linux, og det er egentlig ikke vanskelig å lære . Les mer .

Jeg har lært en god leksjon i dag. Ikke omdirigere loggutgangen for en 10 millioner iterasjon for sløyfe til en txt-fil. Resultat: 5 gb txt fil.

- Lloyd (@ lcarswell1) 21. mai 2017

Hva bruker du omdirigering av output for? Hvilken metode bruker du? Har du lært noen andre måter å omdirigere utdata på? Del dine tanker og erfaringer med oss ​​i kommentarene nedenfor.

In this article