Как сохранить вывод командной строки в файл в Windows, Mac и Linux

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

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

Сегодня мы рассмотрим, как отправить вывод команды в текстовый файл в оболочке bash в Windows, Mac и Linux.

Примечание. В нашем примере мы будем использовать терминал Mac, но он работает одинаково в оболочке bash в Linux и в новой оболочке bash. в Windows 10.

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

Есть два оператора для перенаправление вывода команды в файл вместо экрана.

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

Примечание для себя: когда вы перенаправляете вывод сценария оболочки в файл, он не будет отображаться на консоли 🙂 #StupidMe

— Xavier Mertens (@xme) 5 августа 2017 г.

Чтобы перенаправить вывод команды в файл, введите команду, укажите оператор или > , а затем укажите путь в файл, в который вы хотите перенаправить вывод. Например, команда ls выводит список файлов и папок в текущем каталоге. Когда вы запускаете следующую команду, список файлов и папок будет записан в файл ls_output.txt в папке TerminalOutput .

Замените /path/to/file на полный путь к файлу, который вы хотите использовать.

  ls>/path/to/file  

Это команда для нашего примера.

  ls>/Users/lorikaufman/TerminalOutput/ls_output.txt  

Для просмотра содержимого файла в окне Терминала используйте команду cat , как показано в следующей команде. Снова замените /path/to/file на полный путь к файлу, который вы хотите просмотреть.

  cat/path/to/file  

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

Например, мы добавим системную информацию в конец файла, который мы создали выше. Итак, в следующей строке uname -a — это команда, за которой следует оператор перенаправления > . Затем полный путь к файлу, к которому мы хотим добавить вывод команды uname .

Параметр -a в команде uname выводит всю доступную системную информацию.

  uname -a >>/Users/lorikaufman/TerminalOutput/ls_output.txt  

Для просмотра файла с добавленной информацией в окне Терминала введите следующую команду с полным путем к вашему файлу.

  cat/Users/lorikaufman/TerminalOutput/ls_output.txt  

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

Вот еще один пример отправки вывода ls в виде дерева каталогов с рекурсивным списком подкаталогов (параметр R ) и по одному файлу на строку (параметр 1 ) .

  ls -1R>/Users/lorikaufman/TerminalOutput/dir_tree.txt

Затем мы используем команду cat , как упоминалось ранее, для просмотра содержимого файла в окне терминала.

  cat/Users/lorikaufman/TerminalOutput/dir_tree.txt  

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

Операторы и > не отображают вывод команды на экране. . Вывод только отправляется в файл.

Если вы хотите отправить вывод в файл и увидеть его на экране, используйте команду tee вместо > и > операторы.

Внимание, ботаник! Сегодня я обнаружил команду `tee`, которая передает как файл, так и стандартный вывод. Unix продолжает радовать. рис. twitter.com/aClIT8AdJB

— Зик Сикелианос (@zeke) 29 августа 2017 г.

Чтобы использовать футболку вы должны передать вывод выполняемой команды, например ls , команде tee , используя оператор вертикальной черты ( | ). Например, следующая команда берет выходные данные команды ls и направляет их в команду tee . Затем команда tee отправляет этот вывод на экран и в указанный вами файл, используя полный путь к файлу.

  ls |  tee/Users/lorikaufman/TerminalOutput/ls_output.txt  

Приведенная выше команда заменяет все содержимое в файле или создает новый, если он не существует, как и > оператор. Мы использовали следующую команду cat для просмотра содержимого нашего файла в окне Терминала.

  cat/Users/lorikaufman/TerminalOutput/ls_output.txt  

Чтобы использовать команду tee для вывода вывода на экран и добавления его в конец файла, введите следующее команда. Здесь мы добавляем полную системную информацию в конец файла с помощью команды uname -a , точно так же, как мы это делали с оператором > , но также отправляя вывод на экран.

  uname -a |  tee -a/Users/lorikaufman/TerminalOutput/ls_output.txt  

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

  ls -1R |  tee/Users/lorikaufman/TerminalOutput/dir_tree.txt  

Затем мы снова используем команду cat , чтобы просмотреть содержимое файла.

  cat/Users/lorikaufman/TerminalOutput/dir_tree.txt  

Но подождите, это еще не все

Есть еще много способов перенаправить вывод, включая ошибки, в файл. Вы можете прочитать о различных операторах и командах, используемых для перенаправления вывода, в главе «Перенаправление ввода-вывода» в Advanced Bash Scripting Guide.

Пользователи Mac также должны добавить в закладки нашу шпаргалку по командам терминала Mac.

.

Оцените статью
oilgasindustry.ru
Добавить комментарий