A vantagem da linguagem de script seria a função de callback do file::find. Você não fica limitado a achar o arquivo, mas pode fazer outras coisas com ele.
On 13-01-2011 18:38, Stanislaw Pusep wrote:
O find, sendo altamente especializado, é mais eficiente... Na minha máquina, o mesmo comando, usando "/" ao invés de "/etc", leva 5 segundos, contra 8.6 via Perl. Que fique claro: com a tabela de inodes cacheada. Ou seja: na 1-a "rodada", qqer um deles demora muuuuuuito mais por conta do acesso não-contínuo ao disco (a menos que vc tenha SSD, que ajuda).

ABS()



2011/1/13 "Flávio R. Lopes" <[email protected] <mailto:[email protected]>>

    Obrigado Stanislaw, valeu pela dica!
    Vou olhar melhor os "File Test Operators".

    Uma outra coisa, por curiosidade: Existe diferença de performance
    entre usar:


    find /etc -mtime -1 -type f -print
    ou

    perl -MFile::Find -E 'find sub{say $File::Find::name if -f && 1.0
    > -M}, qw(/etc)'

    Pergunto isto pois dependendo do diretório, seus sub-diretórios e
    números de arquivos, gostaria de saber quais das formas me retorma
    mais rápido o resultado da busca.

    abraço,
    Flávio



    Em 13-01-2011 17:05, Stanislaw Pusep escreveu:
    O código Perl equivalente ao seu "find":

    perl -MFile::Find -E 'find sub{say $File::Find::name if -f && 1.0
    > -M}, qw(/etc)'

    Trocando em miúdos, o File::Find funciona por meio de um
    callback: para cada arquivo encontrado, ele chama uma função que
    você define (no caso, usei uma anônima). E para cada diretório
    "explorado", o find() dá um chdir(). Dentro da função chamada, a
    variável $_ recebe o nome do arquivo.

    ABS()



    2011/1/13 "Flávio R. Lopes" <[email protected]
    <mailto:[email protected]>>

        Boa tarde pessoal.

        Preciso fazer uma buscar no meu sistema por arquivos que
        foram criados ou modificados em determinado período.
        Por exemplo, no meu terminal se eu digitar: "find /etc -mtime
        -1 -type f -print" me listar os arquivos modificados no dia
        anterior.

        Estive dando uma olhada no módulo File::Find, mas acho que
        não estou entendendo direito.

        O que posso usar para fazer esta busca?

        abraço,
        Flávio
        =begin disclaimer
         Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
        SaoPaulo-pm mailing list: [email protected]
        <mailto:[email protected]>
        L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
        =end disclaimer



    =begin disclaimer
        Sao Paulo Perl Mongers:http://sao-paulo.pm.org/
      SaoPaulo-pm mailing list:[email protected]  <mailto:[email protected]>
      L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
    =end disclaimer


    =begin disclaimer
      Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
     SaoPaulo-pm mailing list: [email protected]
    <mailto:[email protected]>
     L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
    =end disclaimer



=begin disclaimer
    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: [email protected]
  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: [email protected]
 L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a