Lorsque j'utilise grep
ou find
, je suis toujours ennuyé par les avis "Autorisation refusée" et "Aucun fichier ou répertoire", quelque chose comme ceci:
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
Comment puis-je les éviter et faire en sorte que je ne voie que les données pertinentes, c'est-à-dire quelque chose que je recherche vraiment?
Réponses:
avec grep, vous pouvez spécifier le drapeau -s qui fait à peu près ce que @ortang a dit
avec trouver autant que je sache @ortangs réponse est la meilleure. quelque chose comme
find / -name "myfile" -type f -print 2>/dev/null
la source
Essayez de rediriger
stderr
vers/dev/null
.la source
La redirection
strerr
vers/dev/null
(akablack hole
) est un bon moyen de supprimer les erreurs d'autorisation refusée.Cependant, notez que cette blessure supprime non seulement les
permission denied
messages mais TOUS les messages d'erreur.Si vous souhaitez conserver des messages d'erreur autres que ceux-
permission denied
là, vous pouvez faire quelque chose comme ça -Si vous ne souhaitez pas conserver ceux-ci, alors ce serait bien -
la source
2>&1
au lieu de2> /dev/null
pour la première suggestion.stderr
versstout
.Utilisez la
sudo
commande pour élever la commande pour avoir des privilèges administratifs.la source
Utiliser "| &" avant que grep -v ne s'en occupe, par exemple
la source