bashpipeoutput-redirectdev-null

How can I redirect all output to /dev/null?


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?


Solution

  • 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.