Tee

ls пересылается в tee, который копирует его в файл file.txt и в команду less. Название tee происходит от английского обозначения трубопроводного тройника, имеющего форму заглавной буквы Тtee — команда, выводящая на экран, или же перенаправляющая выходной поток команды и копирующая его содержимое в файл или в переменную. В первую очередь, команда используется в привязке с перенаправлениями и фильтрами. Используется во множестве оболочек операционных систем, таких как Unix, 4DOS/4NT и Windows PowerShell.
Назначение и синтаксис
tee используется для разделения выводимых программой данных, таким образом данные могут быть использованы для вывода на дисплей и сохранены в файл. Также команда может быть использована для получения промежуточных данных до того, как они будут изменены другой программой или командой. Команда tee считывает стандартный ввод (stdin), после чего записывает его в стандартный вывод (stdout) и одновременно копирует его в подготовленный файл или переменную. Синтаксис различается в соответствии с местом использования команды.
В UNIX
tee [ -a ] [ -i ] [ File ... ]
Переменные:
FileОдин, или более, файл, который примет данные от tee.
Флаги:
-aДописать выходящие данные в конец файла, не перезаписывая его содержимого.-iИгнорировать ошибки.
По окончании команда возвращает следующие значения состояния выхода:
- 0 Стандартный поток ввода (stdin) был успешно записан во все принимающие файлы.
- >0 В случае ошибки.
Примечание: Если при записи в любой удачно открытый файл операция не удалась, данные запишутся в следующий удачно открытый файл. По итогу операция завершится, но состояние выхода будет >0.
Примеры
В UNIX
- Чтобы одновременно увидеть и сохранить выходные данные:
lint program.c | tee program.lint
Эта команда покажет стандартные выходящие данные команды lint program.c на средстве вывода и в то же самое время сохранит полученные данные в файл program.lint. Если такой файл уже существует, он будет перезаписан.
- Чтобы получить данные от команды и дописать их в существующий файл:
lint program.c | tee -a program.lint
Как и в предыдущем примере, на экран будут выведены данные от команды lint program.c, после чего они будут дописаны в конец файла program.lint. Если такой файл не существует, он будет создан.
- Использование совместно с sudo:
echo "Body of file..." | sudo tee root_owned_file > /dev/null
В этом примере демонстрируется, как при помощи tee обойти ограничения команды sudo, за счёт которых она не может перенаправлять вывод (stdout) в файл. А дальнейшее перенаправление в /dev/null позволит избежать вывода текста на консоль.
- Перенаправление STDERR:
ls ./ qwerty 2>&1 | tee ls.log
По умолчанию команда tee записывает в файл только данные от STDOUT, поэтому, если файл «qwerty» отсутствует в текущем каталоге, в файле ls.log будет перечень имеющихся файлов и каталогов и не будет записи о не найденном файле. На экране же будут отображаться выводы как STDOUT, так и STDERR. Если в файл нужно включить также и данные из STDERR, то необходимо, как в примере выше, перенаправить STDERR на STDOUT.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.