Вы, вероятно, имеете в виду |&
без пробела, так как | &
с пробелом является синтаксической ошибкой (или, насколько я могу судить, &
является noop в csh).
|&
является синонимом 2>&1 |
, что означает перенаправление файлового дескриптора 2 (стандартная ошибка) в файловый дескриптор 1 (стандартный вывод) перед передачей стандарта следующей команде в конвейере.Это позволяет включать в конвейер все, что печатается со стандартной ошибкой, вместо того, чтобы печатать ошибки на терминале, как обычно.Это поддерживается несколькими оболочками, такими как Bash.См. Руководство по Bash для получения дополнительной информации.
Обратите внимание, что этот синтаксис был введен только для Bash в Bash 4 (он был в некоторых других оболочках некоторое время) и не совместим с POSIX.так что не пытайтесь использовать его в сценариях переносимой оболочки.