LinuxМакинтош

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

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

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

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

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

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

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

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

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

Чтобы перенаправить вывод команды в файл, введите команду, укажите оператор > или >> , а затем укажите путь к файлу, на который вы хотите перенаправить вывод. Например, команда 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 

сохранить вывод командной строки windows mac linux

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

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

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

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

Чтобы просмотреть файл с добавленной информацией в окне терминала, введите следующую команду, указав полный путь к вашему файлу.

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

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

сохранить вывод командной строки windows mac linux

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

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

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

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

сохранить вывод командной строки windows mac linux

Распечатать вывод на экран и перенаправить его в файл

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

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

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

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

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

 cat /Users/lorikaufman/TerminalOutput/ls_output.txt 

сохранить вывод командной строки windows mac linux

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

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

сохранить вывод командной строки windows mac linux

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

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

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

 cat /Users/lorikaufman/TerminalOutput/dir_tree.txt 

сохранить вывод командной строки windows mac linux

Но подождите, есть больше

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

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

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

AndroidIphone и ipadLinuxWindows

Окончательное руководство по включению темного режима везде

LinuxКак сделать

Что такое Swappiness в Linux? (и как это изменить)

LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux