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

12 set 2022 2 min di lettura
Как использовать команду Tee в Linux
Indice dei contenuti

Введение

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

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

Синтаксис команды тройника

Синтаксис команды tee следующий:

tee [OPTIONS] [FILE]
  • OPTIONS:
  • -a ( --append ) — не перезаписывать файлы, а добавлять их в файлы данных.
  • -i ( --ignore-interrupts ) — игнорировать сигналы прерывания.
  • Используйте tee --help для просмотра всех доступных опций.
  • FILE_NAMES — один или несколько файлов. В каждый из которых записываются выходные данные.

Как использовать команду Тройник

Самое простое использование команды 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/nvme 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/nvme 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-interrupt ). Это полезно, когда вы останавливаете команду во время выполнения CTRL + C.

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.