回答:
それはとは何の関係もないのですgrep-パイプがあるため、それはだ|、標準出力ストリームをリダイレクトするstdoutのに対し、Permission deniedメッセージは標準エラーストリームですstderr。あなたが使用してストリームを組み合わせることによって、欲しい結果達成できる2>&1(そのファイルディスクリプタであるストリームリダイレクト2そのファイルディスクリプタであるストリームにする1ように)それstderrだけでなく、としてstdoutのgrepコマンドの入力にパイプます
find / -name libGL.so.1 2>&1 | grep -v 'denied'
しかし、それを単にstderrリダイレクトすることによって完全に破棄するのがより一般的です/dev/null
find / -name libGL.so.1 2>/dev/null
Bashのmanページを見ると、この宣伝文句に気付くでしょう。
場合
|&に使用され、コマンドの標準誤差は、配管を介してコマンド2の標準入力に接続されています。それは略記です2>&1 |。
したがって、STDERRとSTDOUTを結合する場合も、この構成を使用できます。
find / -name libGL.so.1 |& grep -v 'denied'
「permission denied」行はstderr(標準エラー)ストリームに送られますが、grepを介してstdout(標準出力)をパイピングしています。
でstderrを完全にリダイレクトできます
find / -name libGL.so.1 2> /dev/null
/foo/bar/denied/libGL.so.1、組み合わせるstdoutとstderr、その後フィルタリングは結果を非表示にします