Спецификация POSIX для командного языка оболочки, раздел 2.7, перенаправление , гласит
The overall format used for redirection is:
[n] redir-op wordThe number n is an optional decimal number designating the file descriptor number; …
︙
… The values 0, 1, and 2 have special meaning and conventional uses and are implied by certain redirection operations; they are referred to as standard input, standard output, and standard error, respectively. …︙
The general format for redirecting input is:
[n ]<wordwhere the optional n represents the file descriptor number. If the number is omitted, the redirection shall refer to standard input (file descriptor 0).
… и аналогичный абзац, в котором говорится, что >
эквивалентно 1>
, со ссылкой на стандартный вывод.
X>&Y
для перенаправления дескриптора файла:это означает, что весь вывод в fd X
является фактически поступающим в Y
. 2>&1
выводит вывод STDERR в STDOUT.
wc -l
записывает количество входных строк в STDOUT.
Вместе команда cat /etc/shadow 2>&1 | wc -l
возвращает количество строк в /etc/shadow
, , а также количество строк с ошибками.
Если вы не хотите считать эти строки ошибок, просто используйте cat /etc/shadow | wc -l
.
Это не прямой ответ.
Что мешает вам поэкспериментировать?
Если вы проводили эксперименты, то, возможно, вы сами ответили на свой вопрос.
Запуск различных комбинаций команд.
cat /etc/shadow
cat /etc/shadows
cat /etc/shadow 2>&1
cat /etc/shadows 2>&1
, а затем направить каждый наwc
cat /etc/shadow | wc
и т.д. и т.п.