
Команда tee читает из стандартного ввода и записывает как в стандартный вывод, в один или несколько файлов одновременно. Tee чаще всего используется в сочетании с другими командами через piping.
В этой статье мы рассмотрим основы использования команды tee.
Синтаксис команды Tee
Прежде чем перейти к использованию команды tee, давайте начнем с рассмотрения основного синтаксиса:
tee [OPTIONS] [FILE]OPTIONS:-a(--append) — не перезаписывать файлы, а добавлять их к заданным файлам.-i(--ignore-interrupts) — игнорировать сигналы прерывания.- Используйте
tee --helpдля просмотра всех доступных опций.
FILE_NAMES— Один или несколько файлов. Каждый из которых записываются в выходные данные.
Как использовать команду Tee в Linux
Основное использование команды tee — вывести стандартный вывод ( stdout) программы и записать его в файл.
В следующем примере мы используем команду df для получения информации об объеме доступного дискового пространства в файловой системе. Выходные данные передаются в команду tee, которая отображает выходные данные в терминал и записывает ту же информацию в файл disk_usage.txt.
df -h | tee disk_usage.txt
Filesystem Size Used Avail Use% Mounted on
udev 1.5G 0 1.5G 0% /dev
tmpfs 301M 33M 269M 11% /run
/dev/vda2 59G 27G 30G 48% /
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
Вы можете проверить содержимое файла disk_usage.txt с помощью команды cat.
Запись в несколько файлов
Команда tee также может записывать в несколько файлов. Для этого просто укажите список файлов через пробел после команды tee:
command | tee file1.out file2.out file3.outДобавить в файл
По умолчанию команда tee перезапишет указанный файл. Используйте опцию -a( --append), чтобы добавить вывод в файл:
command | tee -a file.outИгнорировать прерывание
Чтобы игнорировать прерывания, используйте параметр ` -i( --ignore-interrupts). Это полезно, например, если вы прерываете команду во время выполнения с помощью CTRL+C и хотите выйти из программы tee.
command | tee -i file.outСкрыть вывод
Если вы не хотите tee записывать в стандартный вывод (выводить на экран), вам просто нужно перенаправить его на /dev/null:
command | tee file.out >/dev/nullИспользование tee в соединении с sudo
Допустим, вы хотите записать файл, который принадлежит пользователю root как пользователь sudo. Следующая команда завершится ошибкой, потому что sudo не выполняет перенаправление вывода, это произойдет как непривилегированный пользователь.
sudo echo "newline" > /etc/file.conf
Вывод будет выглядеть примерно так:
bash: /etc/file.conf: Permission denied
Вы можете использовать команду tee вместе с sudo для записи в файлы, принадлежащие другим пользователям.
Просто добавьте sudo перед командой tee, как показано ниже:
echo "newline" | sudo tee -a /etc/file.conf
Tree получит вывод команды echo, повысит права на sudo и запишет в файл.
Заключение
К настоящему времени вы должны хорошо понимать, как использовать команду tee в Linux.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Редактор: AndreyEx
Поделиться в соц. сетях: