Pode usar<div>-d pra verificar se é diretorios</div><div>-f pra verificar se é arquivo</div><div>-B (se eu nao me engano) pra verificar se é um arquivo binario</div><div><br></div><div>A lista inteira fica aqui:<br></div><div>
<a href="http://perldoc.perl.org/functions/-X.html">http://perldoc.perl.org/functions/-X.html</a></div><div><br><div class="gmail_quote">2010/9/26 "Flávio R. Lopes" <span dir="ltr"><<a href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Olá Thiago!<br>
Desta forma que você passou não funcionou aqui não.<br>
<br>
Mas funcionou quando eu alterei:<br>
exit if $_ eq ".";<br>
por<br>
next if $_ eq ".";<br>
<br>
Como disse funcionou, mas ainda fica aparecendo aquelas mensagens (Somente para descriptografar, pois durante a encriptação está tudo ok).<br>
<br>
Outra coisa, se tiver que colocar como abaixo, eu vou deixar de usar a funcionalidade do File::Find de "varrer" dentro dos diretórios de forma recursiva, certo?:<br>
ciphertext => "/home/flavio/teste_cripto/$_",<br>
output => "/home/flavio/teste_cripto/$_.txt",<br>
<br>
Só uma outra coisa:<br>
Como faço no Perl (no caso deste meu programa) para que ele não tente criptografar "o diretório, o nome dele", mas somente o que estiver "dentro dele".<br>
<br>
Algo mais ou menos assim: "Se for arquivo, faça isto, Mas se for diretório não faça nada e siga para o próximo"<br>
<br>
Não sei se fui claro...<br>
<br>
Abraço,<br>
Flávio<br>
<br>
<br>
<br>
Em 26-09-2010 11:00, thiago glauco escreveu:<div><div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Primeiro: A função find retorna todos os "arquivos" dentro do diretório, inclusive a referencia para o próprio diretório, o vulgo "."<br>
Segundo: Ela retorna o nome do diretório, e a menos que seu programa esteja rodando no mesmo diretório que os arquivos vc precisa do caminho completo ao arquivo.<br>
<br>
try this:<br>
<br>
sub busca {<br>
#<br>
exit if $_ eq ".";<br>
$gpg->decrypt(<br>
# #ciphertext => "$_.gpg",<br>
ciphertext => "/home/thiago/teste_cripto/$_",<br>
output => "/home/thiago/teste_cripto/$_.txt",<br>
symmetric => 1,<br>
passphrase => $secret<br>
);<br>
<br>
}<br>
<br>
meus 2 centavos.<br>
<br>
Marcio Ferreira wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Na Documentação diz haver um parâmetro( o " |untaint_skip|" ) que faz um skip do diretório, ou se preferir há uma extensão desse módulo que permiti vários tipos de controle, File::Find::Closures - <a href="http://search.cpan.org/~bdfoy/File-Find-Closures-1.09/lib/Closures.pm" target="_blank">http://search.cpan.org/~bdfoy/File-Find-Closures-1.09/lib/Closures.pm</a> <<a href="http://search.cpan.org/%7Ebdfoy/File-Find-Closures-1.09/lib/Closures.pm" target="_blank">http://search.cpan.org/%7Ebdfoy/File-Find-Closures-1.09/lib/Closures.pm</a>> <br>
<br>
Quanto a descriptografia, é melhor perguntar como ela será realizada ? Talvez seja melhor você passar o(s) arquivo(s) como parâmetro, ou fazer uma consulta ao banco de dados, JSON, enfim.<br>
<br>
Nunca testei esse módulo, mas se isso não resolver posta novamente que posso testar.<br>
<br>
[]s,<br>
<br>
@webgenes<br>
Marcio Ferreira<br>
<br>
" Perl lives as the 'toolbox for Unix' "<br>
<br>
<br>
<br>
Em 26 de setembro de 2010 01:08, "Flávio R. Lopes" <<a href="mailto:flavio.lopes@links.inf.br" target="_blank">flavio.lopes@links.inf.br</a> <mailto:<a href="mailto:flavio.lopes@links.inf.br" target="_blank">flavio.lopes@links.inf.br</a>>> escreveu:<br>
<br>
Olá pessoal.<br>
Na verdade estou "requentando" uma dúvida minha sobre um programa<br>
que comecei e não terminei.<br>
<br>
Estou tentando fazer 2 programas que tratam de criptografar e<br>
descriptografar dados recursivamente dentro de uma árvore de<br>
diretórios.<br>
<br>
O código deles está aqui: <a href="http://gist.github.com/597573" target="_blank">http://gist.github.com/597573</a><br>
<br>
No programa "<a href="http://criptografa.pl" target="_blank">criptografa.pl</a> <<a href="http://criptografa.pl" target="_blank">http://criptografa.pl</a>>" ele já<br>
consegue criptografar dados dos diretórios, mas está acontecendo<br>
um problema que ele criptografa o nome dos diretórios inclusive os<br>
ocultos. Supondo que eu aponte para um determinado diretório e que<br>
dentro dele eu tenha um diretório chamado "dir1" e mais dois<br>
arquivos chamados "arquivo1" e "arquivo2" ao rodar o programa e se<br>
eu der o comando "ls -al" dentro do tal diretório me aparece o<br>
seguinte:<br>
<br>
<br>
dir1<br>
arquivo1<br>
arquivo1.gpg<br>
arquivo2<br>
arquivo2.gpg<br>
dir1.gpg --> aqui criptograga o nome do diretorio<br>
..gpg -- > e aqui e no debaixo os diretórios ocultos<br>
..gpg.gpg<br>
<br>
Como faço para o programa "pegar" somente os arquivos para<br>
criptografar, ignorando os diretórios ?<br>
<br>
<br>
Já o programa "<a href="http://descriptografa.pl" target="_blank">descriptografa.pl</a> <<a href="http://descriptografa.pl" target="_blank">http://descriptografa.pl</a>>"<br>
ocorre um erro que não consegui descobrir e os arquivos não são<br>
descriptografados. Acredito que eu esteja errando alguma coisa ao<br>
utilizar o módulo File:Find na passagem de parâmetros.<br>
A mensagem de erro é esta:<br>
<br>
Protocol error: expected NEED_PASSPHRASE.* got NODATA<br>
at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 154<br>
GnuPG::abort_gnupg('GnuPG=HASH(0xf99b48)', 'Protocol error:<br>
expected NEED_PASSPHRASE.* got NODATA\x{a}') called at<br>
/usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 345<br>
GnuPG::send_passphrase('GnuPG=HASH(0xf99b48)', 123456) called<br>
at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 740<br>
GnuPG::decrypt_postwrite('GnuPG=HASH(0xf99b48)', 'ciphertext',<br>
., 'output', '..txt', 'symmetric', 1, 'passphrase', 123456, ...)<br>
called at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 725<br>
GnuPG::decrypt('GnuPG=HASH(0xf99b48)', 'ciphertext', .,<br>
'output', '..txt', 'symmetric', 1, 'passphrase', 123456, ...)<br>
called at /home/flavio/workspace/TESTE/<a href="http://decripto_teste.pl" target="_blank">decripto_teste.pl</a><br>
<<a href="http://decripto_teste.pl" target="_blank">http://decripto_teste.pl</a>> line 34<br>
main::busca() called at<br>
/usr/local/lib/perl5/5.12.1/File/Find.pm line 854<br>
File::Find::_find_dir('HASH(0xf99bd8)',<br>
'/home/flavio/teste_cripto', 3) called at<br>
/usr/local/lib/perl5/5.12.1/File/Find.pm line 722<br>
File::Find::_find_opt('HASH(0xf99bd8)',<br>
'/home/flavio/teste_cripto/') called at<br>
/usr/local/lib/perl5/5.12.1/File/Find.pm line 1297<br>
File::Find::find('CODE(0x11617a8)',<br>
'/home/flavio/teste_cripto/') called at<br>
/home/flavio/workspace/TESTE/<a href="http://decripto_teste.pl" target="_blank">decripto_teste.pl</a><br>
<<a href="http://decripto_teste.pl" target="_blank">http://decripto_teste.pl</a>> line 18<br>
<br>
<br>
Parece que ele não localiza a senha. Mas eu tentei inclusive<br>
colocar a senha dentro da sub eliminando a variável $secret. Ou<br>
seja, fez desta forma: passphrase => "123456"<br>
<br>
O que está errado?<br>
<br>
Abraço,<br>
Flávio<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a> <mailto:<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
<br>
<br>
<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote>
<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
<br>
</blockquote>
<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Renato Santos<br><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>
</div>