As we know ,
File descriptor 1 is the standard output (stdout
).
File descriptor 2 is the standard error (stderr
).
Here is one way to remember this construct (although it is not entirely accurate): at first, 2>1
may look like a good way to redirect stderr
to stdout
.
However, it will actually be interpreted as "redirect stderr
to a file named 1
". &
indicates that what follows and precedes is a file descriptor and not a filename. So the construct becomes: 2>&1
.
Consider >&
as redirect merger operator.
–Credits: Ayman Hourieh , Smart Manoj