Quando uso grep
ou find
, sempre me irrito com os avisos "Permissão negada" e "Não existe esse arquivo ou diretório", algo como isto:
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
Como posso evitá-los e fazer com que eu só veja dados relevantes, ou seja, algo que realmente estou procurando?
Respostas:
com grep, você pode especificar a bandeira -s, que faz praticamente o que o @ortang disse
com encontrar, tanto quanto eu sei resposta @ortangs é o melhor. algo como
find / -name "myfile" -type f -print 2>/dev/null
fonte
Tente redirecionar
stderr
para/dev/null
.fonte
Redirecionar
strerr
para/dev/null
(akablack hole
) é uma boa maneira de suprimir erros de permissão negada.No entanto, observe que esse ferimento não apenas suprime as
permission denied
mensagens, mas TODAS as mensagens de erro.Se você deseja reter outras mensagens de erro
permission denied
, pode fazer algo assim:Se você não deseja retê-las, o seguinte seria ótimo -
fonte
2>&1
vez de2> /dev/null
para a primeira sugestão.stderr
para ostout
primeiro.Use o
sudo
comando para elevar o comando para ter privilégios administrativos.fonte
Usar "| &" antes que o grep -v lide com isso, por exemplo
fonte