もちろん、この関数にはトレース結果をローカルファイルにエクスポートする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