Redirecting stderr to stdout is a common activity while shell scripting, yet I can never remember how to do it.
Here is a basic summary of file piping in bash.
First, basics: 1> is outputting to stdout, while 2> is outputting to stderr.
> is a shortcut for 1>, and most people remember how to redirect to a file: command > file -- which means, equivalently, command 1> file.
Redirecting stderr to a file is command 2> stderr.
To redirect stderr to stdout, you do 2>&1 (conversely, to redirect stdout to stderr, you would do 1>&2).
To redirect both stderr and stdout to a file, then you need to do:
command >file 2>&1
The order is important; if you do command 2>&1 >file, then stderr will be redirected to stdout before stdout is redirected to the file.
However, this use case is common enough that 2>&1 can be abbreviated as &>.
You only need to really remember how to do this:
command &> file