Команды Linux · 2 min read · Sep 20, 2025

Команда Linux tee: объяснение для начинающих (6 примеров)

Иногда вам нужно вручную отслеживать вывод команды и одновременно убедиться, что вывод записывается в файл, чтобы вы могли обратиться к нему позже. Если вы ищете инструмент Linux, который может сделать это для вас, вам будет приятно узнать, что существует команда tee, созданная для этой цели.

В этом руководстве мы обсудим основы команды tee, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры, использованные в этой статье, были протестированы на Ubuntu 16.04 LTS.

Команда Linux tee

Команда tee в основном читает из стандартного ввода и записывает в стандартный вывод и файлы. Следующий синтаксис команды:

tee [OPTION]... [FILE]...

А вот как это объясняется в справочной странице:

Копировать стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод.

Следующие примеры в формате вопросов и ответов должны дать вам лучшее представление о том, как работает команда.

Вопрос 1. Как использовать команду tee в Linux?

Предположим, вы используете команду ping по какой-то причине.

ping google.com

Как использовать команду tee в Linux

И что вы хотите, так это чтобы вывод также записывался в файл параллельно. Тогда вот где вы можете использовать команду tee.

ping google.com | tee output.txt

Следующий скриншот показывает, что вывод был записан в файл ‘output.txt’ вместе с записью на stdout.

вывод команды tee

Так что это должно прояснить основное использование tee.

Вопрос 2. Как убедиться, что tee добавляет информацию в файлы?

По умолчанию команда tee перезаписывает информацию в файле при повторном использовании. Однако, если вы хотите, вы можете изменить это поведение, используя параметр командной строки -a.

[command] | tee -a [file]

Таким образом, параметр -a заставляет tee добавлять информацию в файл.

Вопрос 3. Как сделать так, чтобы tee записывал в несколько файлов?

Это довольно просто. Вам просто нужно указать их имена.

[command] | tee [file1] [file2] [file3]

Например:

ping google.com | tee output1.txt output2.txt output3.txt

Как сделать так, чтобы tee записывал в несколько файлов

Вопрос 4. Как сделать так, чтобы tee перенаправлял вывод одной команды в другую?

Вы можете не только использовать tee для одновременной записи вывода в файлы, но и для передачи вывода как ввода другим командам. Например, следующая команда не только сохранит имена файлов в ‘output.txt’, но и даст вам знать - через wc - количество записей в файле output.txt.

ls file* | tee output.txt | wc -l

Вопрос 5. Как записать в файл с повышенными привилегиями, используя tee?

Предположим, вы открыли файл в редакторе Vim, внесли много изменений, а затем, когда попытались сохранить эти изменения, вы получили ошибку, которая заставила вас понять, что это файл, принадлежащий root, что означает, что вам нужны привилегии sudo для сохранения этих изменений.

В таких ситуациях вы можете использовать tee, чтобы повысить привилегии на лету.

:w !sudo tee %

Указанная команда попросит вас ввести пароль root, а затем позволит вам сохранить изменения.

Вопрос 6. Как сделать так, чтобы tee игнорировал прерывание?

Параметр командной строки -i позволяет tee игнорировать сигнал прерывания ( SIGINT), который обычно выдается, когда вы нажимаете комбинацию клавиш crl+c.

[command] | tee -i [file]

Это полезно, когда вы хотите прервать команду с помощью ctrl+c, но хотите, чтобы tee завершился корректно.

Заключение

Вы, вероятно, согласитесь, что tee - это чрезвычайно полезная команда. Мы обсудили ее основное использование, а также большинство ее параметров командной строки здесь. У инструмента нет крутой кривой обучения, так что просто практикуйте все эти примеры, и вы будете готовы. Для получения дополнительной информации перейдите на справочную страницу инструмента.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.