tee
https://www.hostinger.com.ua/rukovodstva/komanda-tee-linux-primery
Команда tee в Linux считывает стандартный ввод и записывает его одновременно в стандартный вывод и в один или несколько подготовленных файлов. При обычном перенаправлении потока вывода строки команды будут записаны в файл, но мы не сможем увидеть вывод одновременно. С помощью команды tee мы можем это сделать.
Эта команда часто используется в сценариях командной оболочки для отображения хода процесса при выводе одних и тех же записей в файлы журналов.
Синтаксис и использование команды tee в linux
Основной синтаксис команды:
wc -l file1.txt | tee file2.txt
Приведенная выше команда проверит количество строк в файле file1.txt, выведет результат в терминал и сохранит его в файле file2.txt.
Отправка вывода команды tee в linux другим командам
При использовании команды tee в Linux мы получаем вывод в терминале, который мы можем передать другой команде для обработки. Следующая команда выведет список файлов внутри папки и с помощью первого канала запишет вывод в файл test.txt. После этого передаст вывод третьей команде — grep для идентификации файлов, содержащих в себе строку py:
ls | tee test.txt | grep 'py'
Другие операции с командой tee в linux
tee --help
tee --version
По умолчанию команда tee перезаписывает файл с выводом исходной команды, что можно отменить, используя добавляемую опцию -a.
ls | tee –a file.txt
С помощью команды tee в Linux мы также можем сохранить вывод команды в нескольких файлах. Эта опция используется для многократной обработки вывода команды в сценарии оболочки:
ls | tee file1.txt file2.txt file3.txt
Как и в случае стандартных команд, к которым добавляется >, стандартный поток ошибок и стандартный поток вывода (stdout) в tee также обрабатываются по-разному. Обычный знак канала | сохранит в файл только стандартный вывод, но если нам нужны и стандартный поток вывода, и стандартный поток ошибок, следует использовать |& c Linux командой tee.
Нормальная копия стандартного вывода:
команда > file.txt | 
      Обычный способ перенаправления стандартного вывода | 
команда tee file.txt | 
      Использование tee с перезаписью | 
команда tee -a file.txt | 
      Использование tee с дописыванием в файл | 
Стандартный поток вывода и стандартный поток ошибки:
команда &> file.txt | 
      Обычный способ перенаправления стандартного вывода и ошибки | 
команда \|& tee file.txt | 
      Использование tee с перезаписью | 
команда \|& tee -a file.txt | 
      Использование tee с дописыванием в файл | 
Запись файлов с использованием повышенных привилегий в редакторе vim — это ещё одно преимущество команды tee. В среде с высокой степенью защиты обычные операции Linux выполняются с использованием непривилегированных пользователей. Для выполнения административных задач с правами администратора мы используем команду sudo.Стандартный поток вывода и стандартный поток ошибки:
Но иногда нам нужно отредактировать файлы, которые требуют прав администратора.
Отмена изменений и повторное открытие файла с использованием необходимых привилегий посредством sudo — один из вариантов, как это можно сделать. Но если мы используем команду tee, мы можем избежать этой ситуации, записав файл на самом начальном этапе, не отказываясь от изменений с помощью опции повышенных привилегий. При записи в редакторе vim синтаксис будет следующим:
  :w !sudo tee %
Выводы
Команда tee в Linux — удобная утилита для установки скриптов. Ее удобно использовать вместо > для перенаправления вывода.