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