Linuxはパイプラインで「検索」を適用できません。

Linuxはパイプラインで「検索」を適用できません。

以下のディレクトリツリーでファイルを検索しています。試してみるとfind . -name xyz画面がいっぱいです。find: '/home/fred' : Permission denied

私はこのディレクトリにアクセスできないので、これは意味があります。だから私は努力します

find . -name xyz | grep -v Permission 

これにより、不要な行が削除されます。まあ、私の画面は以前と同じです。 grepは何もしません

どうなりますか?どうすれば解決できますか?

ベストアンサー1

「権限が拒否されました」は警告であり、予想されるデータの種類ではありませんfind。要求されたユーザーデータからエラーメッセージを分離するために、findファイル名は標準出力チャネル1に印刷され、警告は標準エラーチャネル2に印刷されます。この動作は、多くのUNIXコマンドラインツールで非常に一般的です。シェルには通常2つのチャンネルが表示されます。/dev/null次のように表示されるvoidなど、エラーストリームを別の場所に明示的にリダイレクトすることでこれを回避できます。

find . -name xyz 2>/dev/null

おすすめ記事