以下のディレクトリツリーでファイルを検索しています。試してみると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