1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

comand line - find (... | more ->é possivel?)

Discussão em 'Dúvidas e Suporte Técnico - GNU/Linux & *nix' iniciada por Armadillo, 6 de Agosto de 2008. (Respostas: 6; Visualizações: 1094)

  1. Armadillo

    Armadillo Folding Member

    ois

    preciso de fazer uma pesquisa por um determinado file.
    estou a usar o seguinte comando:
    Código:
    find -name favicon.ico
    
    agora, o que eu precisava era de fazer um " | more" a este comando. isto é possivel?

    obrigado
    cumps
     
  2. Condez

    Condez [email protected] Member

    Ja experimentas-te fazer exactamente o que dizes?

    E que se experimentares vais ver que funciona.

    find -name favicon.ico | more
     
  3. esquiso

    esquiso Power Member

    Já agora, "less is more" ;)
     
  4. Armadillo

    Armadillo Folding Member

    já, e não há o "more", como acontece num "ls -l | more"

    edit:
    podes ser mais especifico?

    edit2:

    realmente o "| more" funciona. Fiz alguma confusão porque, quando aparece a mensagem "find./xxx/xxx: Permission denied" o more não é aplicado. Iste genero de mensagem aparece-me umas, sei lá... , 60/90 vezes, após mostrar um resultado.

    há alguma solução para isto?

    cumps
     
    Última edição: 6 de Agosto de 2008
  5. pureluck

    pureluck Power Member

    Vamos a ver. Em linux há 3 elementos de entrada/saída de dados importantes: o stdin, o stdout e o stderr. O primeiro é o que usas para o input do teclado e outros periféricos de I/O, o segundo é o que o sistema usa para te dar output normal e o terceiro é o que usa para o output de erros.

    Não sei de programas em C++, mas em relação aos últimos 2, usar o stdout é o correspondente a fazer um cout, ao passo que usar o stderr é o correspondente a usar o cerr. Podes ver mais sobre isso aqui: http://en.wikipedia.org/wiki/Standard_streams.

    De qualquer forma, o que precisas de saber é que o more opera só e apenas para output normal (stdout), e descarta o output de erros (stderr). Como as mensagens do access denied são erros, não aparecem no more normalmente.

    O que podes fazer é usar o operador de redirecionamento de output (>) para pores todo o output a ir para o stdout (incluindo o próprio stderr). No teu caso seria o correspondente a:

    Código:
    find -name favicon.ico 2>&1 | more
    Se usares o less, como o esquiso disse, é melhor, porque te permite fazer scroll up/down e pesquisar coisas no output (ao estilo de uma janela do editor de texto, mas sem poderes editar). Podes é não ter o less instalado, mas se o teu ambiente em linux é recente de alguma forma duvido.

    Boa sorte com isso :002:
     
  6. Condez

    Condez [email protected] Member

    Se simplesmente nao quiseres ver esses erros, redirecciona o stderr para o /dev/null

    find -name favicon.ico 2>/dev/null | more

    Quanto ao "less", na minha opniao, e preferivel ao "more" por te possibilitar o scroll.
    Experimenta e decide por ti mesmo.
     
  7. Armadillo

    Armadillo Folding Member

    obrigado

    solved ;)
    cumps
     

Partilhar esta Página