How to ignore "find: cannot read dir /foo: Permission denied"
If you run the following command on a Unix system, depending on your permissions and other stuff, you might see a lot of errors.
$ find / -name "tar"
In my case I got 8 regular findings and 63 lines of "find: cannot read dir /foo: Permission denied". Quite a lot of noise I really don't care about. Using my new knowledge about streams it is easy to get rid of all that though. Just pipe stderr into
$ find / -name "tar" 2>/dev/null
Voila. Clean output.
⚠ Remember that when you do this all errors will be sent to nowhere. So if there were any other errors, they would also be gone. In this case I don't care, but in other instances you might want to do something else. For example direct it to a log file rather than to oblivion.
If you do care about other error messages, you could do as suggested by Richard in the comments: Redirect
stdout and then use
grep to filter out what you don't want to see.
$ find / -name "tar" 2>&1 | grep -v "Permission denied"