Linux で find を実行するときに「権限が拒否されました」というエラーをスキップするにはどうすればよいですか?

Linux で find を実行するときに「権限が拒否されました」というエラーをスキップするにはどうすればよいですか?

重複の可能性あり:
検索プログラムから「アクセスが拒否されました」という出力文を削除するにはどうすればよいですか?

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これを反転して、指定されたすべての文字列を検索/印刷します。しないstderr「アクセス権が拒否されました」という内容が含まれています。通常(ファイル記述子 2)に送信されるエラー メッセージを含む find コマンドからのすべての出力は、stdout(ファイル記述子 1) に送信され、コマンドによってフィルタリングされますgrep

これはシェルを使用していることを前提としていますbash/sh

下記でtcsh/csh使用する

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

関連情報