重定向命令是意外的

重定向命令是意外的

当然我知道该函数strace有一个选项-o,可以将跟踪结果导出到本地文件中。但我想使用重定向命令(>) 这里。

strace -e trace=file lastb|grep " = 0" >file

这里有一个逻辑问题。>遵循最后一个。这不是我的意图。即使我使用括号也无法改进它,如下所示:

(strace -e trace=file lastb)|grep " = 0" >file

那么如何使用重定向命令(>) 获取包含跟踪信息的文件?

答案1

strace 打印到stderr,而不是stdout。如果你想通过管道传输它,你需要重定向stderr到。stdout

strace -e trace=file lastb 2>&1|grep " = 0" > file

您还可以通过将其重定向到(此处简写为)来抑制lastb其正常输出/dev/null&-

strace -e trace=file lastb 2>&1 >&- | grep " = 0" file

如果您只是想查看从哪里lastb获取其信息,通常位于/var/log/btmp

相关内容