Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

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

Но какво ще стане, ако искате да отпечатате резултата на екрана и едновременно да го съхраните във файл? Въпреки че не можете да го направите с операторите за пренасочване на изхода, възможно е да го направите с помощта на командата tee в Linux.

Основен команден синтаксис

tee е стандартна помощна програма на Linux, използвана за разделяне на изхода на команда между стандартния изход и файловете.

За разлика от повечето Linux команди, tee се използва с други програми, използващи тръба (|). Тръбният оператор — един от много оператори на командния ред на Linux—позволява на програма да използва изхода на друга команда като свой вход. Може да сте използвали тръба, докато използвате grep заедно

instagram viewer
командата ls или котка.

Основният синтаксис на командата tee е:

команда | tee опции filepath

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

Разделен терминален изход на Linux С тройник

Най-простата употреба на tee е да разделите изхода, за да го покажете в терминала, както и да го съхраните във файл. Например, за да съхраните изхода на командата ls в текстов файл с име "output.txt," стартирайте:

ls | tee ./output.txt

Резултатът ще покаже съдържанието на настоящата работна директория, както обикновено. При проверка на файла output.txt ще откриете, че tee също е запазил изхода във файла.

Когато посочите път към файл, tee проверява дали файлът съществува. Ако не намери такъв, той автоматично създава файла вместо вас, което го прави удобен за използване в скриптове на обвивката. Полезно е, когато искате да регистрирате изхода на програма или скрипт за по-късна справка.

Ще трябва да предшествате командата tee със sudo, за да прочетете или съхраните данни във файл, притежаван от root потребителя.

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

ls | tee -a ./output.txt

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

ls | tee ./output1.txt ./output2.txt

Понякога неочаквани грешки или ръчни прекъсвания (с помощта на Ctrl + C или Ctrl + Z) в предишната команда може да накара tee да излезе. За да игнорирате такива прекъсвания, използвайте флаг:

ls | tee -i output.txt

Да се получете помощ от командния ред относно tee или намерете подробности за версията, използвайте --помогне и --версия знамена, както следва:

чай - помощ
тениска --версия

Пренасочване на изхода към друга команда

Можете да създадете изходна верига чрез свързване на tee с други команди на Linux. Това ще запази изхода в посочения файл и след това ще го прехвърли на следващата команда за обработка.

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

команда | tee файлов път | друга команда

Например, следната команда ще запази изхода на командата ls в output.txt преди най-накрая да го пренасочите към grep за бързо търсене:

ls | tee output.txt | grep "Документи"

Като цяло можете да използвате командата tee, за да си поиграете стандартния вход и изход на Linux.

Манипулиране на изход и текст с Linux команди

Командата tee добавя много необходима функционалност към стандартните оператори за пренасочване на изход в Linux. Можете дори да го използвате, за да манипулирате изхода на команда, преди да го предадете на друга програма.

По същия начин можете да променяте текст с помощта на терминала с помощта на някои стандартни Linux команди. Може да отнеме известно време, за да свикнат, но в крайна сметка манипулирането на текст чрез командния ред си струва да се научи за всеки системен администратор.