Командная строка Linux: как перенаправить stderr, stdin и stdout с помощью «2>&1»

“2>&1” в Linux — это синтаксис командной строки, используемый для перенаправления потока стандартных ошибок (stderr) в тот же пункт назначения, что и поток стандартного вывода (stdout). Он объединяет оба потока и отправляет их в указанное место. Вот несколько способов использования «2>&1» в примерах кода:

Метод 1: перенаправление stderr и stdout в файл.

command 2>&1 > output.txt

В этом примере потоки stderr и stdout перенаправляются в файл с именем «output.txt».

Метод 2: отбрасывание stderr и перенаправление stdout в файл.

command 2>/dev/null 1>output.txt

В этом случае поток stderr отбрасывается (отправляется в /dev/null), а стандартный вывод перенаправляется в «output.txt».

Метод 3: перенаправление stderr и stdout в разные файлы.

command 2>error.txt 1>output.txt

В этом примере поток stderr перенаправляется на «error.txt», а стандартный вывод — на «output.txt».

Метод 4: перенаправление stderr и stdout в одно и то же место (например, на терминал).

command 2>&1

Этот метод отправляет как stderr, так и stdout в один и тот же пункт назначения, которым обычно является терминал, на котором выполняется команда.

Метод 5. Использование канала для перенаправления stderr и stdout на другую команду.

command 2>&1 | another_command

В этом примере как stderr, так и stdout из «command» передаются по конвейеру в «another_command» в качестве входных данных.