[SP-pm] Buscar arquivos por data de alteração
Thiago
thiagoglauco at ticursos.net
Thu Jan 13 16:30:31 PST 2011
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" <flavio.lopes em links.inf.br
> <mailto:flavio.lopes em links.inf.br>>
>
> 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" <flavio.lopes em links.inf.br
>> <mailto:flavio.lopes em links.inf.br>>
>>
>> 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: SaoPaulo-pm em pm.org
>> <mailto:SaoPaulo-pm em pm.org>
>> 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:SaoPaulo-pm em pm.org <mailto:SaoPaulo-pm em pm.org>
>> 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: SaoPaulo-pm em pm.org
> <mailto:SaoPaulo-pm em pm.org>
> 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: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110113/166c6f98/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list