Possível duplicata:
Como removo declarações de impressão de “permissão negada” do programa find?
Quando executo este comando no Linux (SuSE):
find / -name ant
Recebo muitas mensagens de erro do formulário:
find: `/etc/cups/ssl': Permission denied
É find
necessário um argumento para ignorar a exibição desses erros e tentar apenas os arquivos que tenho permissão para acessar?
Responder1
você pode filtrar mensagens para stderr
. Eu prefiro redirecioná-los para stdout
assim.
find / -name art 2>&1 | grep -v "Permission denied"
Explicação:
Resumindo, toda a saída regular vai para a saída padrão ( stdout
). Todas as mensagens de erro para erro padrão ( stderr
).
grep
geralmente encontra/imprime a string especificada, -v
inverte isso, então encontra/imprime todas as strings quenãocontém "Permissão negada". Toda a 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 grep
comando.
Isso pressupõe que você esteja usando o bash/sh
shell.
Abaixo tcsh/csh
você usaria
find / -name art |& grep ....