Sådan Gem Command Line Output til fil på Windows, Mac og Linux

Det er nyttigt at gemme output fra en kommando til en fil, hvis du forsøger at diagnosticere et problem, og det er super nemt at gøre.

Det er nyttigt at gemme output fra en kommando til en fil, hvis du forsøger at diagnosticere et problem, og det er super nemt at gøre.
Reklame

Når du kører en kommando i et Terminal-vindue, skrives udgangen af ​​kommandoen normalt til Terminal eller på skærmen, så du kan læse den med det samme. Du kan også udskrive output fra en kommando til en fil, hvis du vil gemme den.

Det er nyttigt at gemme output fra en kommando til en fil, hvis du forsøger at diagnosticere et problem. For at få hjælp fra teknisk support, skal du muligvis køre visse kommandoer på din computer og sende resultaterne til supportteamet. Dette er nemt at bruge output omdirigering på kommandolinjen.

I dag dækker vi hvordan du sender output fra en kommando til en tekstfil i bash-shell på Windows, Mac og Linux.

Bemærk: Vi bruger Mac-terminalen Disse 6 fantastiske terminalkommandoer vil øge din MacBook Disse 6 fantastiske terminalkommandoer vil øge din MacBook Du kan kun få fat i så meget i grafisk brugergrænseflade, før det bliver rod, så det skal komme som ikke stort Overrask at du kan gøre nogle virkelig seje ting ved hjælp af Mac Terminal. Læs mere i vores eksempel, men det fungerer på samme måde i bash shell på Linux 40+ Mest brugte Linux Terminal Commands 40 + Mest brugte Linux Terminal Commands Uanset om du lige er begyndt eller bare nysgerrig om Linux-terminalen, her er de mest almindelige kommandoer, der vil bære dig igennem hele din tid på Linux. Læs mere og i den nye bash shell i Windows 10 En hurtig guide til Linux Bash Shell i Windows 10 En hurtig guide til Linux Bash Shell i Windows 10 Du kan nu køre Linux på Windows. Lær mere om Bash på Windows, fra hvordan og hvorfor du skal installere det, til skjulte funktioner, som du sikkert ikke vidste om. Læs mere .

Omdirigere output til kun en fil

Der er to operatører til omdirigering af output fra en kommando til en fil i stedet for skærmen.

Symbolet > opretter en ny fil, hvis den ikke findes, eller overskriver filen, hvis den allerede findes. >> oprettes også en ny fil, hvis den ikke er til stede, men den tilføjer teksten til slutningen af ​​filen, hvis den allerede findes, snarere end overskrivning af filen.

Bemærk til mig selv: Når du omdirigerer et shell script output til en fil, vises det ikke på konsollen :-) #StupidMe

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

Hvis du vil omdirigere output fra en kommando til en fil, skal du skrive kommandoen, angive operatøren > eller >> og derefter angive stien til en fil, du vil omdirigere outputen til. For eksempel ls kommandoen lister filerne og mapper i den aktuelle mappe. Når du kører følgende kommando, vil listen over filer og mapper blive skrevet til filen ls_output.txt i mappen TerminalOutput .

Udskift / sti / til / fil med den fulde sti til den fil, du vil bruge.

ls>/path/to/file 

Dette er kommandoen til vores eksempel.

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

For at se indholdet af filen i Terminal-vinduet, brug kommandoen cat som vist i den følgende kommando. Igen erstattes / path / to / fil med den fulde sti til den fil, du vil se.

 cat /path/to/file 

gem kommandolinje output windows mac linux

Operatøren > erstatter indholdet af en eksisterende fil, hver gang du bruger den til at omdirigere output. Hvis du vil gemme output fra flere kommandoer til en enkelt fil, skal du bruge >> -operatoren i stedet. Dette tilføjer output fra en kommando til slutningen af ​​den angivne fil, hvis den allerede eksisterer. Hvis filen ikke findes, opretter den en ny.

For eksempel tilføjer vi systemoplysninger til slutningen af ​​den fil, vi oprettede ovenfor. Så i den følgende linje er uname -a kommandoen, efterfulgt af >> omdirigeringsoperatøren. Dernæst den fulde sti til den fil, som vi ønsker at tilføje udgangen af uname- kommandoen.

-en parameter i kommandoen uname udskriver alle tilgængelige systemoplysninger.

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

For at få vist filen med den vedhæftede information i vinduet Terminal, skal du indtaste følgende kommando med den fulde sti til din fil.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

Gentag denne proces så mange gange, som du behøver for at beholde kommandoudgang til slutningen af ​​filen.

gem kommandolinje output windows mac linux

Her er et andet eksempel på at sende output fra kommandoen ls som katalogtræ med underkataloger, der er rekursivt angivet ( R- parameteren) og en fil pr. Linje (den 1 parameter).

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

Derefter bruger vi kommandoen cat som tidligere nævnt til at se indholdet af filen i Terminal vinduet.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

gem kommandolinje output windows mac linux

Udskriv output til skærm og omdirigere det til en fil

Operatørerne > og >> viser ikke output fra en kommando på skærmen. Udgangen sendes kun til en fil.

Hvis du vil sende output til en fil og se den på skærmen, skal du bruge kommandoen tee i stedet for > og >> operatørerne.

Nerd alarm! I dag opdagede jeg 'tee'-kommandoen, som rør til både en fil og standard ud. Unix fortsætter med at glæde. pic.twitter.com/aClIT8AdJB

- Zeke Sikelianos (@zeke) 29. august 2017

For at bruge kommandoen tee skal du rør udgangen fra kommandoen, du kører, ligesom ls, til tee- kommandoen, ved hjælp af røroperatøren, en lodret bjælke ( | ). Følgende kommando tager f.eks. Outputen fra kommandoen ls og piper den ind i kommandoen til tee . T- kommandoen sender derefter den output til skærmen og til en fil, du angiver, ved at bruge den fulde sti til filen.

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

Ovenstående kommando erstatter alt indholdet i filen eller opretter en ny, hvis den ikke findes, ligesom > operatøren. Vi brugte følgende kommando til at se indholdet af vores fil i vinduet Terminal.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

gem kommandolinje output windows mac linux

For at bruge tee- kommandoen til at udskrive output til skærmen og tilføje den til enden af ​​en fil, skal du indtaste følgende kommando. Her tilføjer vi komplette systemoplysninger til slutningen af ​​filen ved hjælp af kommandoen uname -a, ligesom vi gjorde med >> operatøren, men sender også output til skærmen.

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

gem kommandolinje output windows mac linux

Følgende kommando er tee- versionen af ​​at udskrive et katalogtræ rekursivt til en fil og til skærmen, en fil på hver linje, ligesom vi gjorde med > operatøren.

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

Derefter bruger vi kommandoen cat igen for at se indholdet af filen.

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

gem kommandolinje output windows mac linux

Men vent, der er mere

Der er mange flere måder at omdirigere output, herunder fejl, til en fil. Du kan læse om de forskellige operatører og kommandoer, der bruges til at omdirigere output i kapitlet I / O omdirigering i Advanced Bash Scripting Guide. Du kan også lære mere om at bruge kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen Du kan lave masser af fantastiske ting med kommandoer i Linux, og det er virkelig ikke svært at lære . Læs mere .

Jeg har lært en god lektion i dag. Du må ikke omdirigere logproduktet fra en 10 million iteration for loop til en txt-fil. Resultat: 5 gb txt fil.

- Lloyd (@ lcarswell1) 21. maj 2017

Hvad bruger du output omdirigering til? Hvilken metode bruger du? Har du lært nogen andre måder at omdirigere output til? Del dine tanker og oplevelser med os i kommentarerne nedenfor.

In this article