尽管有大量输出,如何立即停止cat输出?


9

当我发现命令错误时,我正在寻找某种方式来停止向STDOUT的输出。例如,如果我不小心收集了一个很大的文件。通常,如果按住ctrl+c,它将最终停止,但是需要很长时间。

有没有一种方法可以立即停止输出?

Answers:


10

您可以运行ctl-z使其后台运行,然后终止PID。

$ ctl z(作为背景)

$ kill -9 {pid}'刚刚被后台化的进程'


1
kill -9如果不是绝对必要的,为什么要这样做?
Benjwadams 2014年

2

通常,数据已经发送到显示器了,“长时间”是试图显示数据的终端。对任务执行任何操作都无济于事(即Ctrl+ ZCtrl+ C),您将需要更快的终端或一些缓冲数据的工具。

我通过大型管道输出,lesstail取决于是否要查看文件的顶部或底部,因为两者都使我能够轻松控制发送到终端的数据量,并在不需要的时候关闭程序。


1

切换到不同的终端(通过CTRL+ F1F6在文本模式下,或在打开一个新窗口screen通过CTRL+ AC)已经按下任一后CTRL+ ZCTRL+ C将导致原来的终端跳过尝试做所有的换行,并直接跳转到最后一行在较短时间内输出


当“长时间”是输出进入网络缓冲区并花费很长时间将所有文本传输到接收终端时,此方法有效吗?如果是这样,那么如何在终结者中实现相同的目标?我切换到另一个选项卡,什么也没有。另一方面,如果我使用〜终止了ssh会话。然后它立即停止。我宁愿不杀死会议。
vontrapp '18

@vontrapp好问题(可能值得提出一个新问题)。我的猜测是那将行不通,但是对于使用SSH的长期运行进程而言,它tmux还是screen始终是一项建议
Tobias Kienzler

0

您应该可以将其通过管道传输到moreless

cat large_file.txt | less

此时,您可以浏览答案并以一个 :q

grep如果您要查找特定的错误/问题,也可以使用它来帮助您对答案进行排序。

http://www.westwind.com/reference/os-x/commandline/pipes.html


1
CHK询问已经开始的情况。在这种情况下,您不能使用更少/更多。
2013

尽管这不是直接问题的答案,但它具有价值,因为它告诉我们如何在情况发生之前避免这种情况。
TecBrat 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.