Сохранить вывод bash’a в текстовый файл в ОС Linux

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

Перенаправляем вывод терминала в файл

В данном случае весь результат работы любой команды будет записан в текстовый файл, без отражения его на экране. То есть, мы в прямом смысле перенаправим информацию с экрана в файл. Для осуществления данного нужно использовать операторы > и >> и путь к файлу в который нужно писать, в конце исполняемой команды.

Оператор > сохранит результат работы команды в указанный файл и, когда в нем уже будет находиться какая-либо информация, перезапишет ее.

Оператор >> перенаправит вывод бригады в файл, и если в нем также будет находиться информация, новые данные будут приплюсованы в конец файла.

Рассмотрим на примере команды ls, которая отображает список файлов и папок в подтвержденной директории. Давайте запишем результат ее работы в текстовый файл. Нам нужно написать бригаду, поставить оператор и указать путь к файлу:

ls > /home/ruslan/пример

Теперь поглядим, все ли сработало. Для этого можно воспользоваться любым текстовым редактором, какой у вас есть. Вдобавок это можно сделать прямо в терминале при помощи команды cat:

cat /home/ruslan/пример

Запомните, что «>» перезапишет все данные, которые были до этого в файле, поэтому, если вам нужно дорисовать что-либо в файл используйте оператор «>>«

Допустим, что после того, как мы перенаправили вывод бригады ls в файл «пример» мы решили узнать версию ядра системы и также сохранить вывод в тот же файл. Дабы узнать версию ядра воспользуемся командой uname и параметром -a, затем говорим Bash как и куда необходимо сохранить результат ее выполнения:

uname -a >> /home/ruslan/пример

Снова проверим итог:

cat /home/ruslan/пример

Как видим, у нас сохранились результаты работы и ls, и uname.

Перенаправляем вывод в файл и показываем его на экране

Не всем и не всегда удобно пользоваться операторами > и >>, так как все же лучше когда волнение бригад можно наблюдать в реальном времени в окне терминала. В таком случае мы можем пользоваться командой tee, которая и отобразит выполнение команд на экране, и сохранит его в файл. Синтаксис ее подобной:

команда | tee /путь/к/файлу

Этот вариант подобен оператору > из предыдущего пункта, то имеется при записи в файл, все старые данные будут удалены. Если вам нужно дописать в файл, в конструкцию необходимо добавить параметр -a:

команда | tee -a /путь/к/файлу

В Bash есть еще несколько операторов и бригад, выполняющих идентичные задачи, их часто используют во время написания различных скриптов, но для обыкновенного пользователя, которому нужно сохранить вывод команды чтобы запостить его на форуме, достаточно достаточно и этих вариантов.

Понравилась статья? Поделиться с друзьями: