find
を使用して/home
ディレクトリ内のすべてのpdfファイルを表示すると、access denied
が表示されます。それらを排除するために、私は試しました:
find /home -iname "*.pdf" | grep -v "access denied"
ただし、結果は同じです。これらの行を削除するにはどうすればよいですか?
access denied
出力はエラーであり、grep
にパイプされるSTDOUTの代わりにSTDERRで送信されるため、試したものは機能しませんでした。
STDERRのみをリダイレクトすることで、これらのエラーが表示されないようにすることができます
find /home -iname "*.pdf" 2>/dev/null
または David Foersterがコメントした より簡潔にできるcloseSTDERR
find /home -iname "*.pdf" 2>&-
ただし、実際に検索するのは他のユーザーではなく自宅だけだと思うので、おそらくあなたは本当に
find ~ -iname "*.pdf"
それがエラーをスローする場合、ローカル設定に間違った所有権がある可能性がありますので、調査する必要があります。
拒否されたアクセスは、おそらくstderr
ではなくstdout
に印刷されています。
これを試して:
find /home -iname "*.pdf" 2>&1 | grep -v "access denied"
2>&1
は、grep -v
がジョブを実行できるように、出力をstderr
からstdout
にリダイレクトします。 (デフォルトでは、|
はstdout
ではなくstderr
のみをパイプします。)