I want to run a program (google-chrome
) in the background, but prevent it from outputting any messages to the terminal.
I tried doing this:
google-chrome 2>&1 1>/dev/null &
However, the terminal still fills up without messages like:
[5746:5746:0802/100534:ERROR:object_proxy.cc(532)] Failed to call method: org.chromium.Mtpd.EnumerateStorag...
What am I doing wrong? How do I redirect all the output to /dev/null
?
Redirection operators are evaluated left-to-right. You wrongly put 2>&1
first, which points 2
to the same place, as 1
currently is pointed to which is the local terminal screen, because you have not redirected 1
yet. You need to do either of the following:
2>/dev/null 1>/dev/null google-chrome &
Or
2>/dev/null 1>&2 google-chrome &
The placement of the redirect operators in relation to the command does not matter. You can put them before or after the command.