23 votes

Comment empêcher l'affichage du message "Permissions refusées" lorsque j'exécute une commande find ?

J'essaie de lancer une commande de recherche, c'est-à-dire.. :

find / -name "some_file" -print 

et mes résultats sont pleins de messages de permission refusée :

find: /.DocumentRevisions-V100: Permission denied

Comment puis-je les empêcher d'apparaître dans mes résultats de recherche ?

44voto

nohillside Points 82672

Trois moyens me viennent à l'esprit :

  • Exécutez la commande en tant qu'administrateur : sudo find / -name "whatever" -print
  • rejeter toute sortie d'erreur : find / -name "whatever" -print 2>/dev/null
  • filtrer les messages "Permission refusée" : find / -name "whatever" -print 2>&1 | fgrep -v "Permission denied"

La principale différence entre la deuxième et la troisième option est probablement que la deuxième élimine tous tandis que le troisième ne montrera aucun fichier/dossier dont le nom contient "Permission refusée" (ce qui est probablement très improbable).

En outre, il peut être utile de noter que vous ne devriez pas utiliser la troisième option si vous prévoyez de traiter ultérieurement la sortie de find via un tuyau. La raison en est que la sortie standard et la sortie d'erreur sont envoyées via deux canaux différents (et ne sont combinées visuellement qu'après coup par le shell). Si vous pipez la sortie dans une autre commande, seul le contenu de la sortie standard sera introduit dans la commande suivante.

7voto

Sergio Rykov Points 2601

Voici une excellente discussion sur ce sujet.

J'ai fini par me résoudre à ajouter la fonction suivante dans ~/.bash_profile script :

find() {
  { LC_ALL=C command find -x "$@" 3>&2 2>&1 1>&3 | \
    grep -v -e 'Permission denied' -e 'Operation not permitted' >&3; \
    [ $? = 1 ]; \
  } 3>&2 2>&1
}

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X