Io-Redirection

重定向命令意外

  • July 9, 2017

當然我知道該函式strace有一個選項-o,可以將跟踪結果導出到本地文件。但我想在這裡使用重定向命令(>)。

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

這裡有一個邏輯問題。>跟隨lastb。這不是我的意圖。即使我使用括號也無法改進它,如下所示:

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

那麼如何使用重定向命令(>)來獲取包含跟踪資訊的文件呢?

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

引用自:https://unix.stackexchange.com/questions/377295