Выбор ответа Middle Потоки и пайпы спрашивают часто обновлено
Порядок перенаправлений 2>&1
Вопрос
Куда попадёт stderr после команды cmd 2>&1 > out.log, запущенной в терминале?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В терминал: при 2&1 дескриптор 1 ещё смотрел туда. Перенаправления выполняются слева направо.
Варианты ответа
- В терминал: при
2>&1дескриптор 1 ещё смотрел тудаправильный ответ - В
out.logвместе со stdout, порядок не важен - В никуда: stderr будет потерян после перенаправления
- Команда упадёт с синтаксической ошибкой перенаправления
Разбор
Перенаправления выполняются слева направо. 2>&1 копирует текущее назначение дескриптора 1 (терминал) в дескриптор 2, затем > out.log меняет только 1. Чтобы оба потока шли в файл, нужно cmd > out.log 2>&1. Синтаксис корректен, и поток не теряется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.