Когато стартирате команда в прозореца bash, обикновено той отпечатва изхода на тази команда директно към терминала, за да можете да я прочетете веднага. Но bash също ви позволява да "пренасочите" изхода на всяка команда, като го запазите в текстов файл, за да можете да прегледате изхода по-късно.
Това работи в bash на всяка операционна система, от Linux и macOS до Windows 10 базирани на Ubuntu баш среда.
За да използвате пренасочването на баш, изпълнявате команда, посочете >
или >>
оператор и след това осигурете пътя на файла, към който искате да се пренасочи изхода.
>
пренасочва изхода на команда към файл, замествайки съществуващото съдържание на файла.>>
пренасочва изхода на команда към файл, добавяйки изхода към съществуващото съдържание на файла.Технически, това пренасочва, "старт" - стандартният изход, който е екранът до файл.
Ето един прост пример. Най- LS
командата изписва файлове и папки в текущата директория. Така. когато изпълнявате следната команда, LS
ще изведе списък на файловете и папките в текущата директория. Но няма да ги отпечатате на екрана - ще ги запазите във файла, който посочвате.
ls> / path / to / file
Не е необходимо да посочвате пътя към съществуващ файл. Посочете всеки валиден път и bash ще създаде файл на това място.
Ако видите съдържанието на файла, ще видите LS
изхода на командата. Например, котка
команда отпечатва съдържанието на файл в терминала:
котка / път / към / файл
Не забравяйте, че
операторът замества съществуващото съдържание на файла с изхода на командата. Ако искате да запазите изхода на множество команди в един файл, бихте използвали >
оператор вместо това. Например, следната команда ще добави системна информация към файла, който посочвате:>>
uname -a >> / пътя / към / файла
Ако файлът все още не съществува, bash ще създаде файла. В противен случай, bash ще остави само съществуващото съдържание на файла и ще добави изхода към края на файла.
Когато прегледате съдържанието на файла, ще видите, че резултатите от втората ви команда са добавени към края на файла:
Можете да повторите този процес толкова пъти, колкото искате, за да продължите да добавяте продукция към края на файла.
Възможно е да не искате да пренасочвате продукцията с >
или >>
оператори, тъй като няма да видите изхода на командата в терминала. Това е, което мишена
командата е за. Командата "Ти" отпечатва входния сигнал, който получава на екрана и го записва едновременно в файл.
За да насочите изхода на команда към мишена
, да го отпечатате на екрана и да го запазите във файл, използвайте следния синтаксис:
команда | tee / path / to / file
Това ще замени всичко във файла с изхода на командата, точно като >
оператор.
За да насочите изхода на команда към мишена
, отпечатване на екрана и запазването му във файл, но го добавите до края на файла:
команда | tee -a / path / to / file
Това ще прибави изхода към края на файла, точно като >>
оператор.
Башевата обвивка включва някои допълнителни, разширени оператори, които изпълняват подобни функции. Те ще бъдат особено полезни, ако пишете баш скриптове. Консултирайте се с глава "Пренасочване на входно / изходни данни" в Ръководството за Advanced Bash-Scripting за по-подробна информация.