Как сохранить вывод команды в файл в Bash (он же терминал Linux и macOS)
Когда вы запускаете команду в приглашении bash, она обычно печатает вывод этой команды непосредственно в терминал, чтобы вы могли сразу же прочитать ее. Но bash также позволяет вам «перенаправить» вывод любой команды, сохранив ее в текстовом файле, чтобы вы могли просмотреть результат позже..
Это работает в bash на любой операционной системе, от Linux и macOS до среды bash на базе Ubuntu в Windows 10.
Вариант первый: перенаправить вывод только в файл
Чтобы использовать перенаправление Bash, вы запускаете команду, укажите >
или же >>
оператор, а затем укажите путь к файлу, на который вы хотите перенаправить вывод.
-
>
перенаправляет вывод команды в файл, заменяя существующее содержимое файла. -
>>
перенаправляет вывод команды в файл, добавляя вывод к существующему содержимому файла.
Технически, это перенаправляет «стандартный вывод» - стандартный вывод, который является экраном - в файл.
Вот простой пример. Ls
Команда выводит список файлов и папок в текущем каталоге. Так. когда вы запускаете следующую команду, Ls
отобразит список файлов и папок в текущем каталоге. Но он не распечатает их на экране - он сохранит их в указанном вами файле.
ls> / path / to / file
Вам не нужно указывать путь к существующему файлу. Укажите любой допустимый путь, и bash создаст файл в этом месте..
Если вы просмотрите содержимое файла, вы увидите Ls
вывод команды. Например, кошка
Команда выводит содержимое файла на терминал:
cat / path / to / file
Помните, что
Оператор заменяет существующее содержимое файла выводом команды. Если вы хотите сохранить вывод нескольких команд в один файл, вы должны использовать >
оператор вместо. Например, следующая команда добавит системную информацию к указанному вами файлу:>>
uname -a >> / путь / к / файлу
Если файл еще не существует, bash создаст файл. В противном случае bash оставит существующее содержимое файла в покое и добавит вывод в конец файла..
Когда вы просмотрите содержимое файла, вы увидите, что результаты вашей второй команды были добавлены в конец файла:
Вы можете повторять этот процесс столько раз, сколько хотите, чтобы добавить вывод в конец файла..
Вариант второй: печатать вывод нормально и перенаправлять его в файл
Вам может не понравиться перенаправление вывода с помощью >
или же >>
операторы, так как вы не увидите вывод команды в терминале. Вот что тройник
команда для. Команда tee выводит полученные данные на экран а также сохраняет его в файл одновременно.
Передать вывод команды в тройник
, распечатав его на экране и сохранив в файле, используйте следующий синтаксис:
команда | тройник / путь / к / файлу
Это заменит все в файле с выводом команды, так же как >
оператор.
Передать вывод команды в тройник
, распечатать на экране и сохранить его в файл, но добавить его в конец файла:
команда | tee -a / path / to / file
Это добавит вывод в конец файла, так же как >>
оператор.
Оболочка Bash включает в себя некоторые дополнительные, расширенные операторы, которые выполняют аналогичные функции. Они будут особенно полезны, если вы пишете сценарии bash. Обратитесь к главе «Перенаправление ввода / вывода» в Расширенном руководстве по написанию сценариев для получения более подробной информации..