find. -name “foo” | mais não funciona

1

Sou um newb unix. Estou usando o find, mas estou obtendo muitos resultados para caber na minha tela, pois está listando as permissões negadas. Eu tentei canalizar mais, mas isso não parece ter nenhum efeito. Então, eu tenho duas perguntas:

  1. Como posso filtrar as pastas às quais não tenho acesso?
  2. Como posso pesquisar os resultados da pesquisa? Não consigo trabalhar com mais.

Obrigado

    
por pondermatic 02.11.2009 / 19:35

3 respostas

8

para suprimir erros de permissão negada, adicione 2>/dev/null ao final da sua declaração find

    
por 02.11.2009 / 19:38
1

tente com (se você estiver usando sh, bash):

find . -name "foo" 2>&1 | more 
    
por 02.11.2009 / 19:37
0

Não sei por que a canalização para mais não funciona para você. Mas uma solução simples seria redirecionar a saída para um arquivo e, em seguida, paginar isso. O seguinte redirecionará a saída padrão para um arquivo, e o erro padrão manterá o padrão, que é exibir o erro na tela:

find . -iname '*something*' > myfile.out
more myfile.out

Você terá que esperar que a localização seja concluída para ver tudo. Se você quiser se livrar dessas mensagens de erro completamente, e ainda tiver os resultados sem erros, vá para o arquivo:

find . -iname '*something*' > myfile.out 2> /dev/null

Sempre que você executar isso, myfile.out será sobrescrito. Esse redirecionamento é padrão no shell e pode ser usado com a maioria dos comandos. Aqui está um pequeno tutorial sobre redirecionamento , vale a pena aprender.

Os outros exemplos:
Com 2>&1 , o erro padrão (stderr) está sendo redirecionado para stdout, então ambos acabam sendo canalizados para mais. Com 2 > / dev / null você está enviando para um dispositivo especial que é basicamente um buraco negro (também conhecido como o balde de bits). Com o * nix, os dispositivos são representados como arquivos.

    
por 02.11.2009 / 19:51

Tags