はむはむエンジニアぶろぐ

365日エンジニアリング

findやgrepの実行時に「許可がありません」や「Permission denied」を回避する方法

f:id:secret_hamuhamu:20160126024557j:plain
cdやlsに次いで、findやgrepは、よく使うコマンドだと思います。
そのよく使うfindやgrepの実行時に権限の問題で、「許可がありません」や「Permission denied」が大量に出力されてしまってうんざりしたことありませんか?
私は、うんざりしてたけど放置していました。
悪い怠惰です。ついカッとならなければなりません。

UNIXの基本的なテクニックで、解決できます。

エラー出力を破棄

findやgrepが出力する「許可がありません」や「Permission denied」って実は、標準エラー出力なのです。
findやgrepが出力する該当ファイルは、標準出力なのです。

cronなどを弄ったことをある方は、ピンと来るでしょう。
そう、標準エラー出力である2を/dev/nullに食わせればいいのです。

grep -r hoge . 2> /dev/null

これで、標準エラー出力を取り除くことができ、ノイズに悩まされずに済みます。