Any command executed in Bash or any other Linux shell, has one input stream (stdin) and two kinds of output streams: standard output (stdout) and standard error (stderr).
Each of these streams is represented by a numeric file descriptor:
0–stdin, the standard input stream1–stdout, the standard output stream2–stderr, the standard error stream
There is an advantage in separating the stdout and stderr streams, as it allows to redirect/pipe a command’s output (stdout) to a file or anther command and still see any error messages (stderr) in the terminal.
But sometimes it is required to redirect the stderr stream to stdout or redirect the both stderr and stdout to a file or to /dev/null and in this note i am showing how to do this.
Redirect stderr to stdout
Redirect stderr to stdout:
$ <command> 2>&1
Redirect stderr and stdout to a file:
$ <command> 2>&1 > <file>
Redirect stderr and stdout to /dev/null:
$ <command> > /dev/null 2>&1
- or -
$ <command> &>/dev/null