/dev/null is a special file that automatically (and efficiently) deletes whatever is written to it.
The > operator tells the shell to take the output (known as the standard output stream) of a command, and save it to the given file.
2> is another form of this, and means to take the error messages from the command (the standard error stream) and save it to the given file instead.
&1 is a special file that means the standard output. So 2>&1 means to redirect the standard error stream to the standard output, in this case /dev/null which causes the streams to be deleted.
You can also have other variations like 1>&2, which would take the standard output and redirect it to standard error.
2>&1 > also has the short-hand form &>, meaning merge standard output and standard error and redirect to
You can also use >> instead of > meaning to append to a file instead of deleting it (not useful with /dev/null).
Also, none of the above are actually arguments to the program; they are all interpreted by the shell, meaning that they can be used with any program. See
for much more detail.