- a number 1 = standard out (i.e. STDOUT)
- a number 2 = standard error (i.e. STDERR)
- if a number isn't explicitly given, then number 1 is assumed by the shell (bash)
First let's tackle the function of these. For reference see the Advanced Bash-Scripting Guide.
Functions
2>&-
The general form of this one is M>&-
, where "M" is a file descriptor number. This will close output for whichever file descriptor is referenced, i.e. "M".
2>/dev/null
The general form of this one is M>/dev/null
, where "M" is a file descriptor number. This will redirect the file descriptor, "M", to /dev/null
.
2>&1
The general form of this one is M>&N
, where "M" & "N" are file descriptor numbers. It combines the output of file descriptors "M" and "N" into a single stream.
|&
This is just an abbreviation for 2>&1 |
. It was added in Bash 4.
&>/dev/null
This is just an abbreviation for >/dev/null 2>&1
. It redirects file descriptor 2 (STDERR) and descriptor 1 (STDOUT) to /dev/null
.
>/dev/null
This is just an abbreviation for 1>/dev/null
. It redirects file descriptor 1 (STDOUT) to /dev/null
.