三| linux终端中的命令

时间:2013-07-05 11:32:51

标签: linux terminal command

通常在Linux命令中,您可以指定另一个同时运行的命令:

ls | grep "sys" 
例如,

。在我的情况下,我有这个命令:

urlsnarf -i wlan0

我可以像这样编辑它来显示过滤后的输出:

urlsnarf -i wlan0 | cut -d\" -f4

但我也希望将输出保存到文件中,同时在控制台中打印文本,以便我这样编辑:

urlsnarf -i wlan0 | cut -d\" -f4 | tee output

但既没有输出文件也没有打印输出。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我想这里发生的事情是管道正在被缓冲。我之前没有见过urlsnarf,但看起来这是一个持续的监控过程。根据以下帖子,您无法轻松阻止管道完全缓冲:

How to make output of any shell command unbuffered?

从答案中链接的文章有一个很好的解读:buffering in standard streams