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