是否可以在 bg 之后停止命令的输出?

是否可以在 bg 之后停止命令的输出?

假设这种情况

wget http://file 

wget 开始下载文件。

我把它放在后台。

^Z
bg

该命令进入后台。

但它的输出仍然在控制台上——如果控制台仍然打开的话。

是否可以停止命令的输出?

Wget只是一个例子;考虑一个写入大量输出的命令。

在控制台,我知道可以执行以下操作bg,然后关闭终端并打开另一个终端,但是如果我只有一个可用终端并且没有伪终端怎么办?

答案1

您的意思是您想让 wget(或其他一些 cmd)在后台运行而不向控制台输出消息吗?如果这是这个问题,你可以尝试redirection

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

上面的 cmd 将重定向到,stdout除了/dev/null错误消息之外,您不会看到任何消息。如果您也不想看到错误消息,请尝试此操作

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

你可以googleredirection一下更详细的信息。

答案2

这是一个实际重定向命令输出的解决方案尽管它正在运行:https://superuser.com/questions/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a-log-file

对于在使用终端的日常场景中更有用的解决方案,您可以 在后台wget -o log http://file & 运行并将其输出写入而不是您的终端。当然,在这种情况下,您根本不会看到任何输出(即使您在前台运行),但您可以随着输出的增长来查看输出。wgetlogwgettail -f log

相关内容