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

Примеры команд Linux Tee

Команда 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 ). Это полезно, когда нужно остановить выполнение команды сочетанием 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

Просто добавьте sudo перед командой tee , как показано ниже:

 echo "newline" | sudo tee -a /etc/file.conf

tee получит вывод команды echo , повысит права до sudo и выполнит запись в файл.

Использование tee совместно с sudo позволяет вам записывать в файлы, принадлежащие другим пользователям.

Заключение

Команда tee считывает данные из стандартного ввода и записывает их в стандартный вывод и один или несколько файлов.

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

тройник -терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *