Як зберегти вивід команди у файл у Bash (він же Linux і MacOS термінал)

Коли ви запускаєте команду в рядку bash, вона, як правило, друкує вихід цієї команди безпосередньо в термінал, щоб ви могли прочитати її негайно. Але bash також дозволяє "перенаправляти" вихід будь-якої команди, зберігаючи її в текстовому файлі, щоб ви могли переглянути огляд пізніше.
Це працює в bash на будь-якій операційній системі, від Linux і MacOS до середовища Ubuntu на базі Windows 10.
Варіант перший: перенаправлення виводу лише до файлу
Щоб скористатися перенаправленням bash, виконайте команду, укажіть > або >> оператор, а потім задати шлях до файлу, на який потрібно перенаправити вивід.
-
>перенаправляє вихід команди на файл, замінюючи існуючий вміст файлу. -
>>перенаправляє вихід команди до файлу, додаючи вихід до існуючого вмісту файлу.
Технічно це перенаправляє "stdout" - стандартний висновок, який є екраном, до файлу.
Ось простий приклад. The ls Команда перелічує файли і папки в поточному каталозі. Тому. під час виконання наступної команди, ls список файлів і папок у поточному каталозі. Але він не буде роздруковувати їх на екран - він буде зберігати їх у вказаному вами файлі.
ls> / path / to / file
Вам не потрібно вказувати шлях до існуючого файлу. Вкажіть будь-який дійсний шлях і bash створить файл у цьому місці.

Якщо ви переглядаєте вміст файлу, ви побачите ls виведення команди. Наприклад, кіт команда виводить вміст файлу на термінал:
cat / path / to / file

Пам'ятайте, що Оператор замінює існуючий вміст файлу виходом команди. Якщо ви хочете зберегти вивід декількох команд в один файл, вам слід скористатися > оператора. Наприклад, наступна команда додасть системну інформацію до вказаного файлу:>>
uname -a >> / path / to / file
Якщо файл ще не існує, bash створить файл. В іншому випадку bash залишить існуючий вміст файлу самостійно і додасть вихід до кінця файлу.
Коли ви переглядаєте вміст файлу, ви побачите, що результати вашої другої команди додано до кінця файлу:

Ви можете повторити цей процес стільки разів, скільки хочете, щоб додати вивід до кінця файлу.
Другий варіант: Вивести друк у звичайному режимі та перенаправити його у файл
Можливо, вам не подобається перенаправляти вивід за допомогою > або >> операторів, оскільки ви не побачите вихід команди в терміналі. Ось що трійник команда для. Команда tee друкує вхід, який він отримує, на екран і зберігає його до файлу одночасно.
Щоб пропустити вихід команди команди трійник, друк на екран і збереження його у файлі використовуйте наступний синтаксис:
команда | tee / path / to / file
Це замінить щось у файлі виходом команди, як і > оператора.

Щоб пропустити вихід команди команди трійник , друк на екран і збереження його до файлу, але додавання його до кінця файлу:
команда | tee -a / шлях / до / файл
Це додасть вихід до кінця файлу, так само як і >> оператора.

Оболонка bash містить деякі додаткові, розширені оператори, які виконують подібні функції. Вони будуть особливо корисні, якщо ви пишете bash-скрипти. Для отримання більш детальної інформації зверніться до розділу Перенаправлення вводу / виводу в Розширеному керівництві сценаріями.


