Визуальный атлас / Интерактивная схема

Порядок перенаправлений: куда уходят stdout и stderr

Сравните >file 2>&1 и 2>&1 >file по состоянию дескрипторов. Схема показывает копирование текущего назначения и объясняет разные результаты.

Начальный9 минОбщие принципы LinuxDramtezi Simulator 0.1

Что показывает модель

Shell обрабатывает перенаправления слева направо до запуска команды. Операция 2>&1 направляет дескриптор 2 туда, куда дескриптор 1 указывает в этот момент. Она не устанавливает постоянную связь, автоматически следующую за будущими изменениями stdout.

Исследуйте схему по шагам

Учебная модель: выберите условие и проследите причинную связь. Сведения вашей системы не считываются.

>report 2>&1

Оба исходных потока направлены в терминал.

  1. Исходное состояние

    FD 1 → терминал; FD 2 → терминал.

  2. >report

    FD 1 → report; FD 2 пока остаётся в терминале.

  3. 2>&1

    FD 2 получает текущее назначение FD 1: оба потока направлены в report.

Результат: Обычный вывод и диагностика попадут в один файл при успешном открытии назначения.

2>&1 >report

Начальные назначения те же; порядок операторов другой.

  1. Исходное состояние

    FD 1 → терминал; FD 2 → терминал.

  2. 2>&1

    FD 2 получает текущее назначение FD 1 — терминал.

  3. >report

    Меняется только FD 1: stdout → report, stderr → терминал.

Результат: Позднее перенаправление stdout не переносит уже скопированное назначение stderr.

>>report 2>&1

Нужно дописать вывод, сохранив существующий отчёт.

  1. Открытие с дополнением

    >> открывает назначение в режиме добавления вместо обнуления.

  2. Назначение stdout

    FD 1 указывает на открытый файл дополнения.

  3. Назначение stderr

    2>&1 дублирует текущее назначение FD 1.

Результат: Оба потока дописываются в файл; это не обещает логическое объединение строк от конкурирующих процессов.

Как читать результат

В исходном примере stdout и stderr направлены в терминал. Последовательное рассмотрение каждого изменения снимает неоднозначность: сначала отмечают текущие назначения, затем применяют ровно одну операцию и только потом переходят к следующей.

Границы схемы

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

Технические источники

Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.

  • GNU Bash — перенаправления и pipeline

Проверка текста: 2026-09-06. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.

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

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация