16

Suppose this situation

wget http://file 

wget starts to download file.

I put it in the background.

^Z
bg

The command goes into the background.

But its output is still on the console also -- if the console is still open.

Is it possible to stop the command's output?

Wget is only an example; think about a command which writes a lot of output.

At the console, I know it is possible to do bg and then close terminal and open another, but what if I have only one terminal avaliable and no pseudo-terminals?

Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255
elbarna
  • 12,695

2 Answers2

6

Do you mean that you want to keep wget(or some other cmd) running background without outputing messages to the console? If that's the question, you can try redirection

$ wget http://file > /dev/null

the cmd above will redirect the stdout to /dev/null and you won't see messages except error messages. If you don't want to see error messages either, try this

$ wget http://file 1>/dev/null 2>&1

You can google redirection for more detailed information.

Sparhawk
  • 19,941
z.h.
  • 994
4

Here's a solution that actually redirects the output of a command while it is running: https://superuser.com/questions/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a-log-file

For a solution that is more usable in an every-day scenario of using a terminal, you could do wget -o log http://file & to run wget in the background and write its output to log instead of your terminal. Of course, you won't see any output at all in this case (even if you ran wget in foreground), but you could do tail -f log to look at the output as it grows.