If-Koubou

Как да запазите изхода на команда към файл в баш (известен още като терминал за Linux и MacOS)

Как да запазите изхода на команда към файл в баш (известен още като терминал за Linux и MacOS) (Как да)

Когато стартирате команда в прозореца bash, обикновено той отпечатва изхода на тази команда директно към терминала, за да можете да я прочетете веднага. Но bash също ви позволява да "пренасочите" изхода на всяка команда, като го запазите в текстов файл, за да можете да прегледате изхода по-късно.

Това работи в bash на всяка операционна система, от Linux и macOS до Windows 10 базирани на Ubuntu баш среда.

Опция 1: Пренасочване на изхода към файл само

За да използвате пренасочването на баш, изпълнявате команда, посочете > или >> оператор и след това осигурете пътя на файла, към който искате да се пренасочи изхода.

  •  > пренасочва изхода на команда към файл, замествайки съществуващото съдържание на файла.
  •  >> пренасочва изхода на команда към файл, добавяйки изхода към съществуващото съдържание на файла.

Технически, това пренасочва, "старт" - стандартният изход, който е екранът до файл.

Ето един прост пример. Най- LS командата изписва файлове и папки в текущата директория. Така. когато изпълнявате следната команда, LS ще изведе списък на файловете и папките в текущата директория. Но няма да ги отпечатате на екрана - ще ги запазите във файла, който посочвате.

ls> / path / to / file

Не е необходимо да посочвате пътя към съществуващ файл. Посочете всеки валиден път и bash ще създаде файл на това място.

Ако видите съдържанието на файла, ще видите LS изхода на командата. Например, котка команда отпечатва съдържанието на файл в терминала:

котка / път / към / файл

Не забравяйте, че > операторът замества съществуващото съдържание на файла с изхода на командата. Ако искате да запазите изхода на множество команди в един файл, бихте използвали >> оператор вместо това. Например, следната команда ще добави системна информация към файла, който посочвате:

uname -a >> / пътя / към / файла

Ако файлът все още не съществува, bash ще създаде файла. В противен случай, bash ще остави само съществуващото съдържание на файла и ще добави изхода към края на файла.

Когато прегледате съдържанието на файла, ще видите, че резултатите от втората ви команда са добавени към края на файла:

Можете да повторите този процес толкова пъти, колкото искате, за да продължите да добавяте продукция към края на файла.

Вариант 2: Отпечатване на изхода по нормален начин и пренасочване към файл

Възможно е да не искате да пренасочвате продукцията с > или >> оператори, тъй като няма да видите изхода на командата в терминала. Това е, което мишена командата е за. Командата "Ти" отпечатва входния сигнал, който получава на екрана и го записва едновременно в файл.

За да насочите изхода на команда към мишена, да го отпечатате на екрана и да го запазите във файл, използвайте следния синтаксис:

команда | tee / path / to / file

Това ще замени всичко във файла с изхода на командата, точно като > оператор.

За да насочите изхода на команда към мишена , отпечатване на екрана и запазването му във файл, но го добавите до края на файла:

команда | tee -a / path / to / file

Това ще прибави изхода към края на файла, точно като >> оператор.

Башевата обвивка включва някои допълнителни, разширени оператори, които изпълняват подобни функции. Те ще бъдат особено полезни, ако пишете баш скриптове. Консултирайте се с глава "Пренасочване на входно / изходни данни" в Ръководството за Advanced Bash-Scripting за по-подробна информация.