Коли ви працюєте в терміналі, весь висновок команд, природно, ви бачите в реальному часі прямо у вікні терміналу. Але бувають випадки коли висновок потрібно зберегти, щоб попрацювати з ним пізніше (проаналізувати його, порівняти, і т.п). Так ось, працюючи в Bash у вас є можливість перенаправляти наведену інформацію з вікна терміналу в текстовий файл. Розглянемо як це робиться.
Варіант 1: тільки перенаправляємо висновок терміналу в файл
В цьому випадку весь результат роботи будь-якої команди буде записаний в текстовий файл, без відображення його на екрані. Тобто, ми в прямому сенсі переспрямуємо інформацію з екрану в файл. Для здійснення цього потрібно використовувати оператори> і >> і шлях до файлу в який потрібно писати, в кінці виконуваної команди.
Оператор> збереже результат роботи команди в зазначений файл і, якщо в ньому вже буде знаходитися будь-яка інформація, перезапише її.
Оператор >> перенаправить висновок команди в файл, і якщо в ньому також буде знаходитися інформація, нові дані будуть додані в кінець файлу.
Розглянемо на прикладі команди ls. яка відображає список файлів і папок у вказаній директорії. Давайте запишемо результат її роботи в текстовий файл. Нам потрібно написати команду, поставити оператор і вказати шлях до файлу:
Пам'ятайте, що «>» перезапише всі дані, які були до цього в файлі, тому, якщо вам потрібно дописати що-небудь в файл використовуйте оператор «>>«
Припустимо, що після того, як ми перенаправили висновок команди ls в файл «приклад» ми вирішили дізнатися версію ядра системи і також зберегти висновок у той же файл. Щоб дізнатися версію ядра скористаємося командою uname і параметром -a. потім говоримо Bash як і куди потрібно зберегти результат її виконання:
Знову перевіримо результат:
Як бачимо, у нас збереглися результати роботи і ls. і uname.
Варіант 2: перенаправляємо висновок в файл і відображаємо його на екрані
Не всім і не завжди зручно користуватися операторами> і >>. так як все ж краще коли хвилювання команд можна спостерігати в реальному часі у вікні терміналу. У такому випадку ми можемо скористатися командою tee. яка і відобразить виконання команд на екрані, і збереже його в файл. Синтаксис її такий:
Цей варіант подібний до оператору> з попереднього пункту, тобто при записі в файл, всі старі дані будуть видалені. Якщо вам потрібно дописати в файл, в конструкцію потрібно додати параметр -a:
У Bash є ще кілька операторів і команд, що виконують ідентичні завдання, їх часто використовують під час написання різних скриптів, але для звичайного користувача, якому потрібно зберегти висновок команди щоб запостити його на форумі, цілком достатньо і цих варіантів. Сподіваюся, що допоміг вам, до нових постів!