tee — утиліта UNIX-подібних систем, яка зчитує дані з потоку вводу і одночасно виводить їх та записує до файлу, назва якого передається як параметр. Назва походить від букви "Т", яка нагадує потрійне з’єднання труб, що використовується у сантехніці.
Опис і синтаксис
tee потрібна для того, щоб "роздвоїти" вивід програми: дані будуть одночасно показуватись на екрані та записуватимуться до файлу. Команда використовується всередині ланцюжку інших команд, отримує дані і передає їх далі.
У UNIX-подібних системах tee [ -a ] [ -i ] [ File ... ]
Аргументи: File Один або більше файлів, у яких зберігатимуться отримані дані. Опції: -a Вміст файлу File буде доповнюватись, а не перезапишеться -i Команда ігноруватиме сигнали переривань.
Команда завершується з наступним результатом: 0 Якщо стандартний вивід було скопійовано до усіх вказаних файлів. >0 Якщо виникла якась помилка.
Приклад: Звичайне використання: lint program.c | tee program.lint Результат обстеження файлу program.c програмою lint буде збережено до program.lint і одночасно виведено на екран.
Перенаправлення STDERR: ls ./ qwerty 2>&1 | tee ls.log За помовчанням tee отримує дані зі стандартного потоку виводу. У цьому разі, якщо файл qwerty відсутній в каталозі, повідомлення про це буде записане у потік помилок. Відповідно, до файлу ls.log воно не потрапить. Для того, щоб це сталось, треба об’єднати потоки виводу та помилок конструкцією 2>&1
Windows PowerShell tee [-FilePath] <String> [-InputObject <PSObject>] tee -Variable <String> [-InputObject <PSObject>]
-InputObject <PSObject> Вказує джерело даних для команди. -FilePath <String> Вказує файл, до якого буде збережено дані. Назва може містити байдужі символи, якщо вони приведуть лише до одного варіанту. -Variable <String> Посилання на вхідні дані, присвоєні змінній.
Див. також An introduction on Linux I/O Redirection "Linux I/O Redirection" with tee — сторінка допомоги man в Linux — сторінка допомоги man в OpenBSD — сторінка допомоги man в FreeBSD
Примітки