con grep potresti specificare il flag -s che fa più o meno quello che ha detto @ortang
-s, --no-messages Elimina i messaggi di errore relativi a file inesistenti o illeggibili. Nota sulla portabilità:a differenza di GNU grep, 7th Edition Unix grep non era conforme a POSIX, perché mancava -q e la sua opzione -s si comportava come l'opzione -q di GNU grep. Anche grep in stile USG mancava di -q ma la sua opzione -s si comportava come GNU grep. Gli shellscript portabili dovrebbero evitare sia -q che -s e dovrebbero invece reindirizzare l'output anderror standard a /dev/null.
con find, per quanto ne so, la risposta di @ortangs è la migliore.qualcosa del genere
find / -name "myfile" -type f -print 2>/dev/null
Prova a reindirizzare stderr
a /dev/null
.
[email protected]:/$ grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn
Reindirizzamento del strerr
a /dev/null
(ovvero black hole
) è un buon modo per sopprimere gli errori di autorizzazione negata.
Tuttavia, tieni presente che questa ferita non solo sopprime permission denied
messaggi ma TUTTI messaggio di errore.
Se desideri conservare i messaggi di errore diversi da permission denied
allora puoi fare qualcosa del genere -
grep -rnP 'YII_CORE_PATH' ./ 2>&1 | grep -v 'permission denied' > error.log
Se non desideri conservarli, allora andrà bene quanto segue -
grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn