LinuxWindowsКак сделатьМакинтош

Как сохранить вывод команды в файл в Bash (он же терминал Linux и macOS)

Когда вы запускаете команду в приглашении bash, она обычно печатает вывод этой команды непосредственно в терминал, чтобы вы могли сразу же прочитать ее. Но bash также позволяет вам «перенаправить» вывод любой команды, сохранив ее в текстовом файле, чтобы вы могли просмотреть результат позже.

Это работает в bash в любой операционной системе, от Linux и macOS до среды bash на основе Ubuntu в Windows 10 .

Вариант первый: перенаправить вывод только в файл

Чтобы использовать перенаправление bash, вы запускаете команду, задаете оператор > или >> и затем указываете путь к файлу, на который вы хотите перенаправить вывод.

  • > перенаправляет вывод команды в файл, заменяя существующее содержимое файла.
  • >> перенаправляет вывод команды в файл, добавляя вывод к существующему содержимому файла.

Технически это перенаправляет «stdout» — стандартный вывод, то есть экран, — в файл.

Вот простой пример. Команда ls выводит список файлов и папок в текущем каталоге. Так. когда вы выполните следующую команду, ls выведет список файлов и папок в текущем каталоге. Но он не будет печатать их на экране — он сохранит их в указанном вами файле.

  ls> / path / to / file 

Вам не нужно указывать путь к существующему файлу. Укажите любой допустимый путь, и bash создаст файл в этом месте.

Если вы просмотрите содержимое файла, вы увидите вывод команды ls . Например, команда cat выводит содержимое файла на терминал:

  cat / path / to / file 

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

  uname -a >> / путь / к / файлу 

Если файл еще не существует, bash создаст файл. В противном случае bash оставит существующее содержимое файла в покое и добавит вывод в конец файла.

Когда вы просмотрите содержимое файла, вы увидите, что результаты вашей второй команды были добавлены в конец файла:

Вы можете повторять этот процесс столько раз, сколько хотите, чтобы добавить вывод в конец файла.

Вариант второй: печатать вывод нормально и перенаправлять его в файл

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

Чтобы перенаправить вывод команды на команду tee , распечатать ее на экране и сохранить в файл, используйте следующий синтаксис:

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

Это заменит что-либо в файле с выводом команды, как оператор > .

Чтобы перенаправить вывод команды на печать, распечатать ее на экране и сохранить в файл, но добавить его в конец файла:

  команда |  tee -a / path / to / file 

Это добавит вывод в конец файла, точно так же как оператор >> .

СВЯЗАННЫЕ: Руководство для начинающих по написанию сценариев оболочки: основы

Оболочка Bash включает в себя несколько дополнительных, расширенных операторов, которые выполняют аналогичные функции. Они будут особенно полезны, если вы пишете сценарии bash . Обратитесь к главе « Перенаправление ввода / вывода» в Расширенном руководстве по написанию сценариев для получения более подробной информации.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone