Команда Tee в Linux с примерами
Команда Tee в Linux с примерами
Linux Tee Command with Examples
В этом руководстве мы рассмотрим основы использования tee команды.

Команда tee
читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно. tee
в основном используется в сочетании с другими командами через трубопровод.
Синтаксис команды Tee
Синтаксис tee
команды следующий:
tee [OPTIONS] [FILE]
OPTIONS
:-a
(--append
) - не перезаписывать файлы, а добавлять их к заданным файлам.-i
(--ignore-interrupts
) - Игнорировать сигналы прерывания.- Используйте
tee --help
для просмотра всех доступных опций.
FILE_NAMES
- Один или несколько файлов. Каждый из которых записывает выходные данные.
Как использовать tee
команду
Основное использование tee
команды - отобразить стандартный вывод ( stdout
) программы и записать его в файл.
В следующем примере мы используем df
команду для получения информации об объеме доступного дискового пространства в файловой системе. Выходные данные передаются в tee
команду, которая отображает выходные данные в терминал и записывает ту же информацию в файл disk_usage.txt
.
df -h | tee disk_usage.txt
Filesystem Size Used Avail Use% Mounted on
dev 7.8G 0 7.8G 0% /dev
run 7.9G 1.8M 7.9G 1% /run
/dev/nvme0n1p3 212G 159G 43G 79% /
tmpfs 7.9G 357M 7.5G 5% /dev/shm
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 7.9G 15M 7.9G 1% /tmp
/dev/nvme0n1p1 511M 107M 405M 21% /boot
/dev/sda1 459G 165G 271G 38% /data
tmpfs 1.6G 16K 1.6G 1% /run/user/120
Вы можете просмотреть содержимое disk_usage.txt
файла с помощью команды cat .
Запись в несколько файлов
Команда tee
также может записывать в несколько файлов. Для этого укажите в качестве аргументов список файлов, разделенных пробелом:
command | tee file1.out file2.out file3.out
Добавить в файл
По умолчанию tee
команда перезапишет указанный файл. Используйте опцию -a
( --append
), чтобы добавить вывод в файл :
command | tee -a file.out
Игнорировать прерывание
Чтобы игнорировать прерывания, используйте `` -i (
–ignore-interrupts ) option. This is useful when stopping the command during execution with
CTRL + C and want
tee` для корректного выхода.
command | tee -i file.out
Скрыть вывод
Если вы не хотите tee
писать в стандартный вывод, вы можете перенаправить его на /dev/null
:
command | tee file.out >/dev/null
Использование тройника в соединении с sudo
Допустим, вы хотите записать файл, который принадлежит пользователю root как пользователь sudo. Следующая команда не будет выполнена, потому что sudo не перенаправляет вывод. Перенаправление выполняется как непривилегированный пользователь.
sudo echo "newline" > /etc/file.conf
Вывод будет выглядеть примерно так:
bash: /etc/file.conf: Permission denied
Просто добавьте sudo
перед tee
командой, как показано ниже:
echo "newline" | sudo tee -a /etc/file.conf
tee
получит вывод команды echo , повысит права на sudo и запишет в файл.
Использование tee
в сочетании с sudo
позволяет записывать в файлы, принадлежащие другим пользователям.
Вывод
Команда tee
читает из стандартного ввода и записывает его в стандартный вывод и один или несколько файлов.