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]> > 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]> > >> 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] >> 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> > <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
