avec grep, vous pouvez spécifier le drapeau -s qui fait à peu près ce que @ortang a dit
-s, --no-messages Supprimez les messages d'erreur concernant les fichiers inexistants ou illisibles. Remarque sur la portabilité :contrairement à GNU grep, la 7e édition d'Unix grep n'était pas conforme à POSIX, car il lui manquait -q et son option -s se comportait comme l'option -q de GNU grep. grep de style USG manquait également de -q mais son option -s se comportait comme grep GNU. Les shellscripts portables doivent éviter à la fois -q et -s et doivent plutôt rediriger la sortie d'erreur standard vers /dev/null.
avec trouver pour autant que je sache @ortangs la réponse est la meilleure.quelque chose comme
find / -name "myfile" -type f -print 2>/dev/null
Essayez de rediriger stderr
à /dev/null
.
[email protected]:/$ grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn
Redirection du strerr
à /dev/null
(alias black hole
) est un bon moyen de supprimer les erreurs d'autorisation refusée.
Cependant, notez que cette blessure ne supprime pas seulement permission denied
messages mais TOUS messages d'erreur.
Si vous souhaitez conserver les messages d'erreur autres que permission denied
alors vous pouvez faire quelque chose comme ça -
grep -rnP 'YII_CORE_PATH' ./ 2>&1 | grep -v 'permission denied' > error.log
Si vous ne souhaitez pas les conserver, ce qui suit serait très bien -
grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn