Linuxでfindを実行するときに「許可拒否」エラーをスキップする方法は? [コピー]

Linuxでfindを実行するときに「許可拒否」エラーをスキップする方法は? [コピー]

重複の可能性:
ファインダーから「Permission Denied」プリントを削除するにはどうすればよいですか?

Linux(SuSE)でこのコマンドを実行すると、次のようになります。

find / -name ant

次の形式のエラーメッセージがたくさん表示されます。

find: `/etc/cups/ssl': Permission denied

findこれらのエラー表示をスキップしてアクセス権のあるファイルのみを試すために必要なパラメータはありますか?

答え1

に送信されたメッセージをフィルタリングできますstderr。私はstdoutこれらの状態にリダイレクトすることを好みます。

 find / -name art  2>&1 | grep -v "Permission denied"

説明する:

つまり、すべての一般出力は標準出力(stdout)に送られます。すべてのエラーメッセージは標準エラー(stderr)に関するものです。

grep通常、指定された文字列を見つけて印刷し、-vそれを反転するので、すべての文字列を見つけて印刷します。いいえ「権限が拒否されました」が含まれています。通常、(ファイルディスクリプタ2)に送信されるstderrエラーメッセージを含むfindコマンドのすべての出力はstdout(ファイルディスクリプタ1)に移動し、コマンドによってフィルタリングされますgrep

これはbash/shシェルを使用していると仮定します。

tcsh/csh使用する場所

 find / -name art |& grep ....

関連情報