Linux позволяет сохранять выходные данные команды в файлах как средство перенаправления вывода. При сохранении вывода в файл с помощью > или >> операторы, вывод перенаправляется без отображения информации на терминале.
Но что, если вы хотите распечатать вывод на экране и одновременно сохранить его в файле? Хотя вы не можете сделать это с помощью операторов перенаправления вывода, это можно сделать с помощью команды tee в Linux.
Основной синтаксис команды
tee — это стандартная утилита Linux, используемая для разделения вывода команды между стандартным выводом и файлами.
В отличие от большинства команд Linux, tee используется с другими программами, использующими канал (|). Трубопроводчик — один из многие операторы командной строки в Linux — позволяет программе использовать вывод другой команды в качестве ввода. Возможно, вы использовали канал при использовании grep вместе с команда лс или кошка.
Основной синтаксис команды tee:
команда | путь к файлу параметров тройника
...где параметры и Путь к файлу являются аргументами командной строки и путем к файлу, в котором вы хотите сохранить вывод.
Разделить вывод терминала в Linux с тройником
Самое простое использование tee — разделить вывод для отображения в терминале, а также сохранить его в файле. Например, чтобы сохранить вывод команды ls в текстовый файл с именем "вывод.txt," бегать:
лс | тройник ./output.txt
Вывод будет отображать содержимое текущего рабочего каталога, как обычно. При проверке файла output.txt вы обнаружите, что tee также сохранил вывод в файл.
Когда вы указываете путь к файлу, tee проверяет, существует ли файл. Если он не находит его, он автоматически создает файл для вас, что делает его удобным для использования в сценариях оболочки. Это полезно, когда вы хотите зарегистрировать вывод программы или скрипта для дальнейшего использования.
Вам нужно будет предварить команду tee sudo, чтобы прочитать или сохранить данные в файл, принадлежащий пользователю root.
Если в указанном файле хранятся данные, которые вы не хотите перезаписывать, используйте -а пометить добавить вывод в файл вместо очистки всего файла и последующего сохранения данных:
лс | тройник -a ./output.txt
Точно так же вы можете перенаправить вывод в несколько файлов, указав пути, разделенные одинарными пробелами:
лс | тройник ./output1.txt ./output2.txt
Иногда непредвиденные ошибки или ручные прерывания (с использованием Ctrl + С или Ctrl + Z) в первой команде может привести к завершению работы tee. Чтобы игнорировать такие прерывания, используйте -я флаг:
лс | тройник -i output.txt
К получить справку из командной строки относительно тройника или найти сведения о версии, используйте --помощь и --версия флаги следующим образом:
тройник --help
тройник --версия
Перенаправление вывода на другую команду
Вы можете создать цепочку вывода, объединив tee с другими командами Linux. Это сохранит вывод в указанный файл, а затем передаст его следующей команде для обработки.
Используйте следующий формат, чтобы перенаправить вывод tee на другую команду:
команда | тройник путь к файлу | другая команда
Например, следующая команда сохранит вывод команды ls в вывод.txt прежде чем, наконец, перенаправить его в grep для быстрого поиска:
лс | тройник output.txt | grep "Документы"
В целом, вы можете использовать команду tee, чтобы поиграть с стандартный ввод и вывод в Linux.
Управление выводом и текстом с помощью команд Linux
Команда tee добавляет столь необходимую функциональность к стандартным операторам перенаправления вывода в Linux. Вы даже можете использовать его для управления выводом команды перед передачей его другой программе.
Точно так же вы можете изменить текст с помощью терминала с помощью некоторых стандартных команд Linux. К ним может потребоваться некоторое время, чтобы привыкнуть, но, в конце концов, манипуляции с текстом через командную строку стоит изучить любому системному администратору.