Come impedisco la visualizzazione del messaggio di autorizzazione negato quando eseguo un comando di ricerca?

6

Sto cercando di eseguire un comando find, ovvero:

find / -name "some_file" -print 

e i miei risultati sono pieni di messaggi di autorizzazione negati:

find: /.DocumentRevisions-V100: Permission denied

Come faccio a impedire che vengano visualizzati nei miei risultati di ricerca?

    
posta blueberryfields 29.05.2013 - 20:24
fonte

1 risposta

13

Mi vengono in mente tre modi:

  • esegui il comando come amministratore: sudo find / -name "whatever" -print
  • elimina tutto l'output di errore: find / -name "whatever" -print 2>/dev/null
  • filtro "Permesso negato": find / -name "whatever" -print 2>&1 | fgrep -v "Permission denied"

La differenza chiave tra la seconda e la terza opzione è probabilmente che il secondo elimina tutti i messaggi di errore all mentre il terzo non mostra alcun file / cartella in cui il nome contiene "Autorizzazione negata" (che è probabilmente altamente improbabile).

Inoltre, vale la pena notare che non si dovrebbe usare la terza opzione se si prevede di elaborare ulteriormente l'output di find tramite una pipe. Il motivo è che gli output standard e di errore vengono inviati attraverso due canali diversi (e solo successivamente combinati visivamente dalla shell). Se si reimposta l'output in un altro comando, solo il contenuto dell'output standard verrà inserito nel comando successivo.

    
risposta data 29.05.2013 - 20:34
fonte

Leggi altre domande sui tag