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 &quot;Flávio R. Lopes&quot; <span dir="ltr">&lt;<a href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>&gt;</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 &quot;.&quot;;<br>
por<br>
next if $_ eq &quot;.&quot;;<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 &quot;varrer&quot; dentro dos diretórios de forma recursiva, certo?:<br>
ciphertext =&gt; &quot;/home/flavio/teste_cripto/$_&quot;,<br>
output =&gt; &quot;/home/flavio/teste_cripto/$_.txt&quot;,<br>
<br>
Só uma outra coisa:<br>
Como faço no Perl (no caso deste meu programa) para que ele não tente criptografar &quot;o diretório, o nome dele&quot;, mas somente o que estiver &quot;dentro dele&quot;.<br>
<br>
Algo mais ou menos assim: &quot;Se for arquivo, faça isto, Mas se for diretório não faça nada e siga para o próximo&quot;<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 &quot;arquivos&quot; dentro do diretório, inclusive a referencia para o próprio diretório, o vulgo &quot;.&quot;<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 &quot;.&quot;;<br>
 $gpg-&gt;decrypt(<br>
# #ciphertext =&gt; &quot;$_.gpg&quot;,<br>
 ciphertext =&gt; &quot;/home/thiago/teste_cripto/$_&quot;,<br>
 output =&gt; &quot;/home/thiago/teste_cripto/$_.txt&quot;,<br>
 symmetric =&gt; 1,<br>
 passphrase =&gt; $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 &quot; |untaint_skip|&quot; ) 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> &lt;<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>&gt; <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>
&quot; Perl  lives as the &#39;toolbox for Unix&#39; &quot;<br>
<br>
<br>
<br>
Em 26 de setembro de 2010 01:08, &quot;Flávio R. Lopes&quot; &lt;<a href="mailto:flavio.lopes@links.inf.br" target="_blank">flavio.lopes@links.inf.br</a> &lt;mailto:<a href="mailto:flavio.lopes@links.inf.br" target="_blank">flavio.lopes@links.inf.br</a>&gt;&gt; escreveu:<br>


<br>
    Olá pessoal.<br>
    Na verdade estou &quot;requentando&quot; 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 &quot;<a href="http://criptografa.pl" target="_blank">criptografa.pl</a> &lt;<a href="http://criptografa.pl" target="_blank">http://criptografa.pl</a>&gt;&quot; 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 &quot;dir1&quot; e mais dois<br>
    arquivos chamados &quot;arquivo1&quot; e &quot;arquivo2&quot; ao rodar o programa e se<br>
    eu der o comando &quot;ls -al&quot; 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 --&gt; aqui criptograga o nome do diretorio<br>
    ..gpg -- &gt; e aqui e no debaixo os diretórios ocultos<br>
    ..gpg.gpg<br>
<br>
    Como faço para o programa &quot;pegar&quot; somente os arquivos para<br>
    criptografar, ignorando os diretórios ?<br>
<br>
<br>
    Já o programa &quot;<a href="http://descriptografa.pl" target="_blank">descriptografa.pl</a> &lt;<a href="http://descriptografa.pl" target="_blank">http://descriptografa.pl</a>&gt;&quot;<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(&#39;GnuPG=HASH(0xf99b48)&#39;, &#39;Protocol error:<br>
    expected NEED_PASSPHRASE.* got NODATA\x{a}&#39;) called at<br>
    /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 345<br>
       GnuPG::send_passphrase(&#39;GnuPG=HASH(0xf99b48)&#39;, 123456) called<br>
    at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 740<br>
       GnuPG::decrypt_postwrite(&#39;GnuPG=HASH(0xf99b48)&#39;, &#39;ciphertext&#39;,<br>
    ., &#39;output&#39;, &#39;..txt&#39;, &#39;symmetric&#39;, 1, &#39;passphrase&#39;, 123456, ...)<br>
    called at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 725<br>
       GnuPG::decrypt(&#39;GnuPG=HASH(0xf99b48)&#39;, &#39;ciphertext&#39;, .,<br>
    &#39;output&#39;, &#39;..txt&#39;, &#39;symmetric&#39;, 1, &#39;passphrase&#39;, 123456, ...)<br>
    called at /home/flavio/workspace/TESTE/<a href="http://decripto_teste.pl" target="_blank">decripto_teste.pl</a><br>
&lt;<a href="http://decripto_teste.pl" target="_blank">http://decripto_teste.pl</a>&gt; 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(&#39;HASH(0xf99bd8)&#39;,<br>
    &#39;/home/flavio/teste_cripto&#39;, 3) called at<br>
    /usr/local/lib/perl5/5.12.1/File/Find.pm line 722<br>
       File::Find::_find_opt(&#39;HASH(0xf99bd8)&#39;,<br>
    &#39;/home/flavio/teste_cripto/&#39;) called at<br>
    /usr/local/lib/perl5/5.12.1/File/Find.pm line 1297<br>
       File::Find::find(&#39;CODE(0x11617a8)&#39;,<br>
    &#39;/home/flavio/teste_cripto/&#39;) called at<br>
    /home/flavio/workspace/TESTE/<a href="http://decripto_teste.pl" target="_blank">decripto_teste.pl</a><br>
&lt;<a href="http://decripto_teste.pl" target="_blank">http://decripto_teste.pl</a>&gt; 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 =&gt; &quot;123456&quot;<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> &lt;mailto:<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>&gt;<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>