Мы все знаем, что выполнение команды в командной строке Linux приводит к выполнению команды и печати результатов в самом Терминале. Иногда этого немедленного вывода недостаточно, особенно если мы хотим сохранить вывод для последующего использования. К счастью, Linux bash и все операционные системы bash, если на то пошло, оснащены возможностью печати вывода команды в указанный файл.
Сохранение вывода команд в файл
Мы выполним несколько примеров, в которых вывод команд будет сохранен в указанном нами имени файла.
Если вы хотите сохранить вывод команды в новый файл или заменить содержимое уже существующего файла выводом команды, используйте следующий синтаксис:
1 | [команда] > [/file/location/filename] |
Например, я использую команду lscpu (которая отображает системную информацию) и затем выведу ее содержимое в файл с именем systeminf.txt. Этот файл еще не существует в моей системе.
1 | lscpu > /home/user/systeminfo.txt |
Когда я обращаюсь к этому файлу через файловый менеджер, он выглядит следующим образом:
Добавление вывода в уже существующий файл
Если вы хотите сохранить вывод команды Linux в файл, не изменяя его уже существующего содержимого, вы можете использовать следующий синтаксис:
1 | [команда] >> [/file/location/filename] |
Например, следующая команда добавит результат команды ls в конец уже существующего файла systeminformation.txt.
1 | ls >> /home/user/systeminfo.txt |
Следующий файл, который раньше содержал только информацию о моей системе, теперь также содержит результат моей команды ls:
Печать вывода на терминале и сохранение его в файл
Вы могли заметить, что команды, о которых мы говорили выше, только сохраняют вывод в файл, не печатая его на Терминале. Если вы хотите просмотреть вывод команды на Терминале, используйте следующий синтаксис:
1 | [команда] | tee [/file/location/filename] |
Например, текст, который мы хотим передать эхом, теперь будет передан эхом на Терминале, а также распечатан в файл myfile.txt.
1 | echo "print text to file" | tee /home/user/myfile.txt |
Если вы хотите добавить вывод команды в уже существующий файл. Пожалуйста, следуйте следующему синтаксису:
1 | [команда] | tee -a [/file/location/filename] |
Используйте pipe для сохранения вывода команды в файл.
1 | echo "some more text" | tee -a /home/sana/myfile.txt |