Команда Tee в Linux с примерами

Linux Tee Command with Examples

21 Июня 2020 | Терминал

В этом руководстве мы рассмотрим основы использования tee команды.

Команда Tee в Linux с примерами

Команда 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 читает из стандартного ввода и записывает его в стандартный вывод и один или несколько файлов.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...