Тройник (команда) - Tee (command)
Разработчики) | AT&T Bell Laboratories Майк Паркер, Ричард Столмен, Дэвид Маккензи, Микроволновая печь, Джим Холл, Программное обеспечение JP, Microsoft |
---|---|
изначальный выпуск | Июнь 1974 г. |
Операционная система | Unix, Unix-подобный, План 9, Inferno, ОС-9, FreeDOS, Windows, ReactOS, IBM i |
Платформа | Кроссплатформенность |
Тип | Команда |
В вычислениях тройник
это команда в интерпретаторы командной строки (снаряды ) с помощью стандартные потоки который читает стандартный ввод и записывает его как в стандартный вывод, так и в один или несколько файлов, эффективно дублируя ввод.[1] Он в основном используется вместе с трубы и фильтры. Команда названа в честь Тройник, используемый в сантехнике.[2]
Обзор
В тройник
команда обычно используется для Трещина вывод программы, чтобы ее можно было как отображать, так и сохранять в файле. Команду можно использовать для захвата промежуточного вывода до того, как данные будут изменены другой командой или программой. Команда tee читает стандартный ввод, затем записывает свое содержимое в стандартный вывод. Он одновременно копирует данные в указанный файл (ы) или переменные. Синтаксис отличается в зависимости от реализации команды.
Реализации
Команда доступна для Unix и Unix-подобный операционные системы, Микроволновая печь ОС-9,[3] ДОС (например. 4ДОС, FreeDOS ), Майкрософт Виндоус (например. 4NT, Windows PowerShell ), и ReactOS.[4] Linux тройник
команду написал Майк Паркер, Ричард Столмен, и Дэвид Маккензи.[5] В FreeDOS версия была разработана Джим Холл и под лицензией GPL.[6]В тройник команда также была перенесена в IBM i Операционная система.[7]
Дополнительно губка
[8] команда предлагает аналогичные возможности.
Unix и Unix-подобные
tee [-a] [-i] [Файл ...]
Аргументы:
Файл ...
Список файлов, каждый из которых получает вывод.
Флаги:
-а
Добавляет вывод в каждый файл, а не перезаписывает его.-я
Игнорирует прерывания.
Команда возвращает следующие значения выхода (статус выхода ):
- 0 Стандартный ввод был успешно скопирован во все файлы вывода.
- > 0 Произошла ошибка.
С помощью замена процесса позволяет нескольким процессам читать стандартный вывод исходного процесса. Прочтите этот пример из GNU Coreutils, вызов tee.
Примечание. Если запись в любой успешно открытый файловый операнд не удалась, запись в другие успешно открытые файловые операнды будет продолжена, и стандартный вывод будет продолжен, но значение выхода будет> 0.
4DOS и 4NT
Файл TEE [/ A] ...
Аргументы:
файл
Один или несколько файлов, которые получат вывод «tee'd».
Флаги:
/ А
Добавляйте содержимое конвейера к выходным файлам, а не перезаписывайте их.
Примечание: когда тройник используется с конвейером, вывод предыдущей команды записывается в временный файл. Когда эта команда завершится, тройник читает временный файл, отображает вывод и записывает его в файл (ы), указанный как аргумент командной строки.
Windows PowerShell
тройник [-FilePath][-InputObject ] tee -Variable [-InputObject ]
Аргументы:
-InputObject
Задает объект, вводимый командлету. Параметр принимает переменные, содержащие объекты и команды или выражения, возвращающие объекты.-FilePath
Задает файл, в котором командлет хранит объект. Параметр принимает символы подстановки которые разрешаются в один файл.-Переменная
Ссылка на входные объекты будет присвоена указанной переменной.
Заметка: тройник реализуется как Только для чтения
псевдоним команды. Внутреннее имя командлета Microsoft.PowerShell.Utility Tee-Object
.
Примеры
Unix и Unix-подобные
- Чтобы просмотреть и сохранить вывод команды (ворсинок ) в то же время:
lint program.c | tee program.lint
Это отображает стандартный вывод команды lint program.c
на компьютере, и в то же время сохраняет его копию в файле program.lint
. Если файл с именем program.lint
уже существует, он удаляется и заменяется.
Точно так же выходные потоки stdout и stderr могут быть перенаправлены на стандартный вывод и program.lint
с использованием перенаправления потока:
lint program.c 2>&1 | tee program.lint
- Чтобы просмотреть и добавить вывод команды в существующий файл:
lint program.c | tee -a program.lint
Это отображает стандартный вывод lint program.c
на компьютере и в то же время добавляет ее копию в конец program.lint
файл. Если program.lint
файл не существует, он создается.
- Чтобы разрешить повышение разрешений:
кошка ~ / .ssh / id_rsa.pub | ssh admin @ server "sudo tee -a /root/.ssh/authorized_keys2> / dev / null"
Этот пример показывает тройник используется, чтобы обойти внутреннее ограничение в судо команда. судо не может передать стандартный вывод в файл. Выгрузив его поток stdout в / dev / null
, мы также подавляем зеркальный вывод в консоли. Приведенная выше команда предоставляет текущему пользователю root-доступ к серверу через ssh путем установки открытого ключа пользователя в список авторизации ключей сервера.
В Баш, вывод может быть фильтрованный перед записью в файл - без влияния на отображаемый результат - с помощью замена процесса. Например,
ls - цвет=всегда | тройник>(sed "s / x1b [^ m] * m // g" > ls.txt)
удаляет общие Коды выхода ANSI прежде чем писать ls.txt
, но сохраняет их для отображения.[9]
4DOS и 4NT
В этом примере выполняется поиск файла wikipedia.txt
для любых строк, содержащих строку "4ДОС ", копирует совпадающие строки в 4DOS.txt
, сортирует строки и записывает их в выходной файл 4DOSsorted.txt
:
найти «4ДОС» wikipedia.txt | тройник 4DOS.txt | Сортировать > 4DOSsorted.txt
Windows PowerShell
- Чтобы одновременно просмотреть и сохранить вывод команды:
ipconfig | тройник Выходной файл.текст
Это отображает стандартный вывод команды ipconfig
на окно консоли, и одновременно сохраняет его копию в файле OutputFile.txt
.
- Для отображения и сохранения всех запущенных процессы, отфильтрованы так, что только программы, начинающиеся с svc и имеющие более 1000 ручки выводятся:
Get-Process | Где-объект { $_.имя -подобно "svc *" } | Тройник-Объект ABC.текст | Где-объект { $_.Ручки -gt 1000 }
В этом примере показано, что входной канал для тройник можно фильтровать и это тройник используется для отображения этого вывода, который снова фильтруется, чтобы отображались только процессы, имеющие более 1000 дескрипторов, и записывает нефильтрованный вывод в файл ABC.txt
.
Смотрите также
Рекомендации
- ^ "Страница руководства для тройника (позиция 1)". IEEE Std 1003.1, издание 2003 г., Стандарт информационных технологий - интерфейс переносимой операционной системы (POSIX), Базовые спецификации Open Group, выпуск 6. Получено 1 декабря 2013.
- ^ «Что означают некоторые команды с неясными названиями в Unix?». Получено 3 февраля 2012.
- ^ Пол С. Даян (1992). Гуру OS-9 - 1: Факты. Galactic Industrial Limited. ISBN 0-9519228-0-7.
- ^ "reactos / reactos". GitHub.
- ^ "tee (1): читать из стандартного ввода / писать в стандартный вывод / файлы - страница руководства Linux". linux.die.net.
- ^ "Пакет ibiblio.org FreeDOS - tee (Unix-подобный)". www.ibiblio.org.
- ^ IBM. "Qshell для программирования IBM System i версии 7.2" (PDF). Получено 5 сентября 2020.
- ^ "губка (1): впитать стандартный ввод / записать в файл - справочная страница Linux". linux.die.net.
- ^ "GNU Coreutils: вызов тройника". Получено 3 февраля 2016.
дальнейшее чтение
- МакЭлхерн, Кирк (2006). Командная строка Mac OS X: Unix под капотом. Джон Уайли и сыновья. ISBN 978-0470113851.
внешняя ссылка
- Введение в перенаправление ввода-вывода Linux «Перенаправление ввода-вывода Linux» с тройником
- Руководство GNU tee
- Единая спецификация UNIX, Выпуск 7 из Открытая группа : дублировать стандартный ввод - Справочник по командам и утилитам,
- План 9 Руководство программиста, том 1 –
- Inferno Общие команды Руководство –