Linux

Перенаправление вывода команд Linux: пошаговое сохранение в файл

Часто в Linux нужно сохранять вывод команд в файл для логирования или анализа. В этом гайде вы узнаете, как перенаправить стандартный вывод с помощью > и >>, а также как обработать потоки ошибок.

Обновлено 1 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04Debian 12Fedora 38CentOS 8

Введение

Когда вы работаете в терминале Linux, часто возникает необходимость сохранить результаты команд — будь то список файлов, логи приложения или вывод скрипта. Перенаправление вывода в файл позволяет вам хранить эти данные для дальнейшего анализа, автоматизации или документации. В этом гайде вы узнаете простые приёмы с операторами >, >>, 2> и &> и сможете применять их в любой среде bash.

Требования / Подготовка

  • Доступ к терминалу Linux с оболочкой bash (или другой совместимой оболочкой).
  • Базовые знания работы с командами (ls, echo, cat).
  • Необходимые права для записи в целевую директорию.

Пошаговая инструкция

Шаг 1: Простое перенаправление стандартного вывода в файл

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

ls -l > list.txt

Команда ls -l выводит подробный список каталогов; результат сохраняется в list.txt.

Шаг 2: Добавление вывода к существующему файлу

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

echo "new entry" >> log.txt

Теперь строка "new entry" будет добавлена в log.txt.

Шаг 3: Перенаправление потока ошибок

Сообщения об ошибках выводятся на стандартный поток ошибок (stderr). Для их сохранения в файл используйте 2>.

python script.py 2> errors.log

errors.log будет содержать только ошибки; успешный вывод остаётся на экране.

Шаг 4: Объединение stdout и stderr в один файл

Если вам нужно сохранить всё (вывод и ошибки) в одном месте, объедините потоки с помощью >&.

bash myscript.sh >& combined.log

Теперь и стандартный вывод, и ошибки записываются в combined.log.

Шаг 5: Проверка результата

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

cat list.txt

Откройте файл в редакторе или воспользуйтесь less, если список большой.

Проверка результата

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

Возможные проблемы

  • Нет прав на запись – если вы не можете записать файл, проверьте права с помощью ls -ld directory и используйте sudo, если это необходимо.
  • Перенаправление только stderr – если вы случайно используете > для команды, которая пишет только в stderr, файл будет пустым. Проверьте, какая часть вывода вам действительно нужна.
  • Кодировки и специальные символы – при работе с не-ASCIИ текстом убедитесь, что кодировка терминала совпадает с кодировкой файла; используйте LC_ALL=utf-8 при необходимости.

Эти приёмы станут основой для более сложных сценариев логирования и автоматизации в Linux.

Часто задаваемые вопросы

Зачем перенаправлять вывод команд в файл?
Как добавить вывод к существующему файлу?
Что делать, если команда выводит ошибки?
Можно ли перенаправить вывод нескольких команд сразу?

Полезное

Перенаправление стандартного вывода в файл
Добавление вывода к существующему файлу
Перенаправление потока ошибок
Объединение stdout и stderr в один файл
Проверка результата

Эта статья помогла вам решить проблему?