Redirection operators allow control of where [[input and output streams]] should go. The following are some of the redirect operators in Bash:
> - redirect output, overwriting target if exists
Note, this is the same as 1> which only redirects stdout
>> - redirect output, appending instead of overwriting if target exists
&#> - redirect file descriptor #, where # is the identifier
< - redirect input
Streams can be referenced via their 'file descriptor identifier' (number). An ampersand is required if redirecting to another stream to reduce ambiguity.
Common redirects:
> or 1> - redirects stdout only. This means errors can be silently swallowed
2> - redirects stderr only
2>&1 - redirects stderr to stdout. The final output will contain both stdout and stderr output, if any.
&> - redirect stdout and stderr. This is also the same as the above 2>&1
echo 'hello' > output.txt - outputs everything to output
echo 'hello' 1> output.txt 2> errors.txt - outputs stdout to output, and stderr to errors
If certain output isn't wanted, it can redirected to /dev/null which functions as a 'black hole' to silence the output.
[[20210222163611-echo-status-code]]