linux - 三 | linux终端中的命令

标签 linux terminal command

<分区>

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

ls | grep "sys" 

例如。在我的例子中,我有这个命令:

urlsnarf -i wlan0

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

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

但我也想将输出保存到文件,同时在控制台打印文本,所以我这样编辑它:

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

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

最佳答案

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

How to make output of any shell command unbuffered?

从答案链接的文章很好读:buffering in standard streams

关于linux - 三 | linux终端中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487917/

相关文章:

命令行参数问题

php - 从 Linux 命令行检查有效的 docx

Android strace(或任何 linux 二进制文件)执行

windows - tmux 没有服务器在/tmp/tmux-*/default - Windows msys2 终端上运行

linux - 文件和路径列表分隔符 :

linux - 如何在 ps -ef 命令中分隔列

c - 在 linux 中生成鼠标、键...等事件

Linux ping广播开关

cocoa - 从 Cocoa 应用程序调用终端命令

c - 在 C 中开始一个新的文本行