- Команда tee Linux
- Синтаксис команды tee
- Примеры использования
- 1. Простое использование команды tee
- 2. Добавление вывода в существующий файл
- 3. Запись вывода в несколько файлов
- 4. Игнорируем прерывание сигнала
- 5. Перенос вывода команды tee в другую команду
- 6. Команда tee и скрипты
- 7. Как скрыть вывод команды в терминале
- Итоги
- Tee Command in Linux Explained with Examples
- Tee command examples
- 1. Display command output and save it to a file
- 2. Display command output and save it to multiple files
- 3. Parse the command output to another command while saving it to a file
- Conclusion
Команда tee Linux
Иногда нам нужно сохранить вывод команды в файл, чтобы в последствии использовать вывод для других целей. Команда tee в Linux нужна для записи вывода любой команды в один или несколько файлов.
Суть ее работы можно описать заглавной буквой T — команда tee linux принимает данные из одного источника и может сохранять их на выходе в нескольких местах. То, как она может использоваться в Linux, хорошо видно на нескольких примерах, которые приведены ниже.
Синтаксис команды tee
Синтаксис команды достаточно простой:
$ tee опции файл
- -a или -append — Используется для записи вывода в конец существующего файла.
- -i или -ignore-interrupts — Используется, чтобы игнорировать прерывающие сигналы.
- -help — Используется для показа всех возможных операций.
- -version — Используется для показа текущей версии этой команды.
Для сохранения вывода команды можно передать один или несколько файлов.
Примеры использования
1. Простое использование команды tee
Команда ls -la нужна в Linux для показа списка файлов с описанием в текущем каталоге. Здесь команда tee используется для сохранения вывода ls -la в файл вывод.txt Введите следующие команды в терминале, чтобы проверить как работает команда tee.
Здесь первая команда показала вывод списка файлов в текущем каталоге в терминал и записала полученные данные в файл вывод.txt
Вторая команда показала содержимое файла вывод.txt
2. Добавление вывода в существующий файл
Если вывод любой команды записать в существующий файл с применением команды tee и операции -a, содержимое файла не будет перезаписано. Здесь вывод команды pwd будет добавлен в конец файла вывод.txt Запустите следующие команды с помощью терминала:
Здесь первая команда отображает вывод pwd в терминал и записывает вывод в конец файла вывод.txt Вторая команда используется для выделения вывода файла. Показано, что файл вывод.txt содержит оба результата: из предыдущего примера и из этого.
3. Запись вывода в несколько файлов
Команда tee может использоваться для вывода любой команды сразу в несколько файлов. Для этого необходимо указать имена файлов, разделив их пробелом. Используйте следующие команды для сохранения вывода date в два файла: вывод1.txt и вывод2.txt
date | tee вывод1.txt вывод2.txt
Здесь первая команда выводит текущее системное время и сохраняет полученные результаты в два файла вывод1.txt и вывод2.txt Вторая команда показывает идентичное содержимое обоих файлов.
4. Игнорируем прерывание сигнала
Команда tee linux с опцией -i используется в этом примере, чтобы игнорировать любые прерывания во время ее выполнения. Таким образом, команда будет выполнена правильно, даже если пользователь нажимает CTRL+C. Выполните следующие команды в терминале.
wc -l вывод.txt | tee -i вывод3.txt
Здесь первая команда считает количество строчек в файле вывод.txt и сохраняет полученный результат в файл вывод3.txt Вторая команда показывает содержимое файла вывод.txt, который содержит 37 строчек. Третья команда показывает содержимое файла вывод3.txt, в котором указано, что он действительно содержит 37 строчек.
5. Перенос вывода команды tee в другую команду
Вывод команды tee может быть перенесен в другую команду. В этом примере вывод из первой команды переносится в tee, а ее вывод — в другую команду. Запустите следующие команды в терминале:
ls | tee вывод4.txt | wc -lcw
Здесь первая команда используется для записи вывода ls в файл вывод4.txt и подсчета общего числа строк, слов и символов в файле вывод4.txt Вторая команда используется для отображения вывода команды ls, а третья — для отображения содержимого файла вывод4.txt
6. Команда tee и скрипты
Команда tee также может использоваться для записи вывода bash-скрипта в файл. Создайте bash-файл с приведенным кодом, который возьмет два входных числа из аргументов командной строки и выведет сумму этих чисел. Команда tee используется в этом примере для записи вывода add.sh в файл результат.txt
#!/bin/bash
a=$1
b=$2
((result=$a+$b))
echo «The addition of $a+$b=$result»
Запустите следующую команду в терминале для записи файла и отображения его содержимого.
bash add.sh 40 80 | tee результат.txt
Здесь числа 40 и 80 переносятся в качестве аргументов командной строки в скрипт add.sh и вывод записывается в файл результат.txt Команда cat выводит соответствующий результат.
7. Как скрыть вывод команды в терминале
Если вы хотите записать вывод прямо в файл и не показывать его в терминале, используйте /dev/null с командой tee. Для этого выполните следующие команды.
df | tee вывод5.txt > /dev/null
Здесь первая команда используется для записи вывода команды df в файл вывод5.txt, при этом вывод не показывается в терминале. Вторая команда показывает полученный результат.
Итоги
Вывод любой команды может использоваться для нескольких целей. Используя команду tee с разными опциями, можно сохранить вывод команды в нескольких файлах. Применение команды tee в наиболее распространенных случаях хорошо показано в этой инструкции с примерами. Надеемся, читателю будут полезны приведенные упражнения.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Tee Command in Linux Explained with Examples
If you want to display the output of a command and save it to a file simultaneously, tee command is what you need. Learn various ways of using tee command in Linux.
The tee command reads from the standard input and writes to both standard output and files.
The result is that you get to see your command’s output as well as save it to a file at the same time.
In other words, you have one input that is channeled to two outputs.
This all makes more sense if you are familiar with the redirection concept in Linux.
The command is named after the tee connector used in electricity, plumbing, and other industries. They are called tee because they resemble the letter ‘T’.
Now that you understand the purpose of the tee command, let’s see how to use the tee command in Linux.
Tee command examples
The tee command has a simple syntax:
Remember that tee reads from the standard input so almost all the times, you’ll use it in the conjugation of another command.
Let me show you some examples.
1. Display command output and save it to a file
Let’s take a basic case where you want to count the number of lines in a file. You want to see how many lines are there in the file and save that number to another file.
[email protected]:~$ wc -l agatha.txt | tee count.txt 20 agatha.txt
The file count doesn’t exist so it will create a new file named count. If you see the content of file count, you’ll see the same output that you saw on the display.
[email protected]:~$ cat count.txt 20 agatha.txt
Note: By default, tee command will overwrite the content of the file. If you want you can use the append option -a with it:
wc -l agatha.txt | tee -a count.txt
2. Display command output and save it to multiple files
If you want to save the command output to multiple files, you can do that as well with tee command. You just have to specify the files.
[email protected]:$ wc -l agatha.txt | tee count1.txt count2.txt 20 agatha.txt
You can verify that the same output has been stored in the two mentioned files.
[email protected]:~$ cat count1.txt count2.txt 20 agatha.txt 20 agatha.txt
I hope you knew that you can see multiple files together with the cat command in Linux.
3. Parse the command output to another command while saving it to a file
You don’t always need to see the command output. Since it is standard output, you can pipe it to another command.
Take the command below for example.
[email protected]:~$ ls -l | tee count.txt | wc -l 7
What happens here is that the output of ‘ls -l’ command is piped to the tee command. Now the tee command stores the output of ‘ls -l’ in the count.txt file but instead of displaying this output, it is piped to ‘wc -l’ command that counts the number of line.
The output you see in this case is the output of the ‘wc -l’ command. The output of ‘ls -l’ command is stored in the file count.txt.
[email protected]:~$ cat count.txt total 20 -r--r--r-- 1 abhishek abhishek 456 Dec 11 21:29 agatha.txt -rw-r--r-- 1 abhishek abhishek 0 Jan 10 16:03 count.txt -rw-r--r-- 1 abhishek abhishek 356 Dec 17 11:39 file1.txt -rw-r--r-- 1 abhishek abhishek 356 Dec 17 09:59 file2.txt -rw-r--r-- 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target
Conclusion
Using the tee command is really up to your imagination and your situation. I find it handy when I have to analyze a lengthy output like a log file. Seeing it in real time and storing in a file for future reference helps a bit and saves me some time.
I hope you liked the tee command examples I listed here. If you think of some really awesome way to use this command, please share it with the rest of us in the comment section.