Ubuntu grep, find etc: "Permission denied" and "No such file or directory" output

31,296

Solution 1

with grep you could specifiy the -s flag which does pretty much what @ortang said

-s, --no-messages Suppress error messages about nonexistent or unreadable files. Portability note: unlike GNU grep, 7th Edition Unix grep did not conform to POSIX, because it lacked -q and its -s option behaved like GNU grep's -q option. USG-style grep also lacked -q but its -s option behaved like GNU grep. Portable shell scripts should avoid both -q and -s and should redirect standard and error output to /dev/null instead.

with find as far as I know @ortangs answer is the best. something like

find / -name "myfile" -type f -print 2>/dev/null

Solution 2

Try redirecting stderr to /dev/null.

johndoe@johndoe-desktop:/$ grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn

Solution 3

Redirecting the strerr to /dev/null (a.k.a black hole) is a good way of suppressing permission denied errors.

However, do note that this wound not only suppress permission denied messages but ALL error messages.

If you do wish to retain error messages other than permission denied then you can do something like this -

grep -rnP 'YII_CORE_PATH' ./ 2>&1 | grep -v 'permission denied' > error.log

If you don't wish to retain those then the following would be just fine -

grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn

Solution 4

johndoe@johndoe-desktop:/$ sudo grep -rnP 'YII_CORE_PATH' ./ | grep -v .svn

Use the sudo command to elevate the command to have administrative privileges.

Share:
31,296

Related videos on Youtube

Vadim Samokhin
Author by

Vadim Samokhin

https://medium.com/@wrong.about

Updated on September 18, 2022

Comments

  • Vadim Samokhin
    Vadim Samokhin over 1 year

    When I use grep or find, I always get annoyed by the "Permission denied" and "No such file or directory" notices, something like this:

    johndoe@johndoe-desktop:/$ grep -rnP 'YII_CORE_PATH' ./ | grep -v .svn
    grep: ./lib/ufw/user6.rules: Permission denied
    grep: ./lib/ufw/user.rules: Permission denied
    grep: ./lib/init/rw/udev/watch/27: No such file or directory
    grep: ./lib/init/rw/udev/watch/26: No such file or directory
    grep: ./lib/init/rw/udev/watch/25: No such file or directory
    

    How can I avoid them and make it so I only see relevant data, i.e. something that I'm really looking for?

  • choroba
    choroba over 12 years
    You cannot grep something that has been already redirected to /dev/null.
  • jaypal singh
    jaypal singh over 12 years
    @choroba Have corrected the answer. Meant to write 2>&1 instead of 2> /dev/null for first suggestion.
  • ortang
    ortang over 12 years
    Yes, you have to redirect stderr to stout first.