Como pular erros de “permissão negada” ao executar o find no Linux? [duplicado]

74

Quando executo este comando no Linux (SuSE):

find / -name ant

Recebo muitas mensagens de erro do formulário:

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

O find usa um argumento para ignorar a exibição desses erros e apenas tenta arquivos que eu tenho permissão para acessar?

    
por user710818 11.07.2012 / 21:14

1 resposta

87

você pode filtrar as mensagens para stderr . Eu prefiro redirecioná-los para stdout assim.

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

Explicação :

Em suma, toda a saída regular vai para a saída padrão ( stdout ). Todas as mensagens de erro para o erro padrão ( stderr ).

grep geralmente encontra / imprime a string especificada, o -v inverte isto, então ele encontra / imprime todas as seqüências que não contêm "Permissão negada". Toda a sua saída do comando find, incluindo mensagens de erro normalmente enviadas para stderr (descritor de arquivo 2), vai agora para stdout (descritor de arquivo 1) e depois é filtrada pelo comando grep .

Isso pressupõe que você esteja usando o bash/sh shell.

Em tcsh/csh você usaria

 find / -name art |& grep ....
    
por 11.07.2012 / 21:16