95

For example

echo "aaa" |& cat

What does |& mean here?

Is there a website recommended to look up those? Since most search engines can't support searching special characters.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Nan Hua
  • 3,414
  • 3
  • 17
  • 24
  • 1
    FYI: `echo "aaa" |& cat` may lead to `-bash: syntax error near unexpected token \`&'` if `bash --version` is `GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)`. – pmor Feb 17 '22 at 23:34

4 Answers4

89

From man 1 bash, section Pipelines:

[time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]

If |& is used, command's standard error, in addition to its standard output, is connected to command2's standard input through the pipe

So it is just like the pipe operator |, but piping both standard output and standard error.

Oleg Andriyanov
  • 5,069
  • 1
  • 22
  • 36
  • 2
    @BallpointBen exactly. From https://www.gnu.org/software/bash/manual/bash.pdf: `If ‘|&’ is used, command1’s standard error, in addition to its standard output, is connected to command2’s standard input through the pipe; it is shorthand for 2>&1 |.` – SantaXL Nov 18 '19 at 16:22
  • 1
    @SantaXL It's worth noting that `|&` isn't widely supported and you are better off using `2>&1 |` for greater shell support across different platforms and different Linux distributions. – WinEunuuchs2Unix Jun 29 '23 at 01:20
20

This operator pipes both standard output and standard error from the left hand side to the right hand side.

The Bash reference manual has a comprehensive index of all operators where you can look up these operators.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
5

If ‘|&’ is used, command1’s standard error, in addition to its standard output, is connected to command2’s standard input through the pipe; it is shorthand for 2>&1 |. This implicit redirection of the standard error to the standard output is performed after any redirections specified by the command.

honzajde
  • 2,270
  • 3
  • 31
  • 36
2

command1 |& command2 equal command1 2>&1 | command2

张馆长
  • 1,321
  • 10
  • 11