Команда tee - вывод stdin на экран и в файл

Еще до курсов Linux задавал себе вопрос как вывод какой либо команды записывать в файл и одновременно выводить на экран. Например, пингуем какой-нибудь хост и нужно видеть глазами время отклика, и в то же время сохранить в файл все, что выводит команда ping. Если написать

1
$ ping igorka.com.ua > ping.txt


то мы вывод команды ping сохраним в файл ping.txt, но не будем видеть что команда выводит на экране монитора.

И вот на курсах Linux на одной лекции преподаватель показал как сделать такую вещь. В конспект я записал, но впоследствии забыл в какой теме, потом лень было искать, а сегодня наконец решил все таки найти эту запись. И нашел.

Так вот для того чтобы одновременно выводить stdout на экран и записывать его в файл можно воспользоваться командой tee. Команда tee свой входящий поток (stdin), выводит на экран монитора (в стандартный stdout) и параллельно записывает в указанный файл.

1
$ ping igorka.com.ua | tee pingigorka.txt

Записав такую конструкцию видим на экране вывод команды ping, и в это же время все что выводит ping записывается с помощью tee в файл pingigorka.txt.

При такой записи если файл с указанным именем существует, он будет перезаписан. Если информацию необходимо добавить в уже существующий файл, значит записываем команду tee с опцией -a или –append:

1
$ ping igorka.com.ua | tee -a pingigorka.txt

Статьи и новости схожей тематики:

Комментариев: 2

  1. Александр:

    Действительно удобный способ. До того как прочитал эту статью использовал tail с параметром -f. Но раз есть специальная команда буду юзать её. Спасибо.

    Ответить

  2. CYBERGROM:

    Спасибо добрый человек! =)
    Очень помогло.

    Ответить

Оставьте свой отзыв