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

    Как сохранить вывод команды в файл в 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. Обратитесь к главе «Перенаправление ввода / вывода» в Расширенном руководстве по написанию сценариев для получения более подробной информации..