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

    Як зберегти вивід команди у файл у 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-скрипти. Для отримання більш детальної інформації зверніться до розділу Перенаправлення вводу / виводу в Розширеному керівництві сценаріями.