web-dev-qa-db-fra.com

Comment ignorer les erreurs "permission refusée" lors de l'exécution de find sous Linux?

Duplicata possible:
Comment supprimer les instructions d'impression "autorisation refusée" du programme de recherche?

Lorsque j'exécute cette commande sous Linux (SuSE):

find / -name ant

Je reçois de nombreux messages d'erreur du formulaire:

find: `/etc/cups/ssl': Permission denied

find prend-il un argument pour ignorer l'affichage de ces erreurs et n'essaye que les fichiers auxquels j'ai l'autorisation d'accéder?

146
user710818

vous pouvez filtrer les messages vers stderr. Je préfère les rediriger vers stdout comme ça.

 find / -name art  2>&1 | grep -v "Permission denied"

Explication:

En bref, toutes les sorties régulières vont à la sortie standard (stdout). Tous les messages d'erreur à l'erreur standard (stderr).

grep trouve/imprime généralement la chaîne spécifiée, le -v inverse cela, donc il trouve/imprime chaque chaîne qui ne pas contient "Autorisation refusée". Tous vos résultats de la commande find, y compris les messages d'erreur généralement envoyés à stderr (descripteur de fichier 2), accédez maintenant à stdout (descripteur de fichier 1), puis filtrez par le grep commande.

Cela suppose que vous utilisez le bash/sh Coquille.

En dessous de tcsh/csh vous utiliseriez

 find / -name art |& grep ....
191
Levon