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