risposta-alla-domanda-sullo-sviluppo-web-bd.com

Come saltare gli errori "permesso negato" quando si esegue find in Linux?

Possibile duplicato:
Come posso rimuovere le dichiarazioni di stampa “permesso negato” dal programma find?

Quando eseguo questo comando in Linux (SuSE):

find / -name ant

Ricevo molti messaggi di errore del modulo:

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

find accetta un argomento per saltare la visualizzazione di questi errori e provare solo i file a cui ho il permesso di accedere?

146
user710818

puoi filtrare i messaggi su stderr. Preferisco reindirizzarli a stdout in questo modo.

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

Spiegazione:

In breve, tutto l'output normale passa all'output standard (stdout). Tutti i messaggi di errore per errore standard (stderr).

grep di solito trova/stampa la stringa specificata, il -v inverte questo, quindi trova/stampa ogni stringa che non contiene "Autorizzazione negata". Tutto l'output del comando find, inclusi i messaggi di errore in genere inviati a stderr (descrittore di file 2), passa ora a stdout (descrittore di file 1) e quindi viene filtrato da grep comando.

Ciò presuppone che tu stia utilizzando il bash/sh Conchiglia.

Sotto tcsh/csh useresti

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