<span dir="ltr"></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
    Stanislaw&gt; O find, sendo altamente especializado, é mais<br>
    Stanislaw&gt; eficiente... Na minha máquina, o mesmo comando, usando<br>
    Stanislaw&gt; &quot;/&quot; ao invés de &quot;/etc&quot;, leva 5 segundos, contra 8.6 via<br>
    Stanislaw&gt; Perl. Que fique claro: com a tabela de inodes<br>
    Stanislaw&gt; cacheada. Ou seja: na 1-a &quot;rodada&quot;, qqer um deles demora<br>
    Stanislaw&gt; muuuuuuito mais por conta do acesso não-contínuo ao disco<br>
    Stanislaw&gt; (a menos que vc tenha SSD, que ajuda).<br>
<br>
Fica um pouco mais rápido assim:<br>
<div class="im"><br>
perl -MFile::Find -E &#39;find sub{say $File::Find::name if -f &amp;&amp; 1.0 &gt; -M _}, qw(/etc)&#39;<br></div></blockquote><div><br>Boa!<br>Aliás, rodei agora que acabei de bootar a máquina e levou 2 min e 10 seg para vasculhar o &#39;/&#39;. Nada mal.<br>

Outra coisa: em supostamente qualquer sintaxe do &quot;find&quot;, é só trocar por &quot;find2perl&quot; que terás um programa em Perl equivalente:<br><br><span style="font-family: courier new,monospace;">$ find2perl /etc -mtime -1 -type f -print</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">#! /usr/bin/perl -w</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    eval &#39;exec /usr/bin/perl -S $0 ${1+&quot;$@&quot;}&#39;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">        if 0; #$running_under_some_shell</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">use strict;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">use File::Find ();</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"># Set the variable $File::Find::dont_use_nlink if you&#39;re using AFS,</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;"># since AFS cheats.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"># for the convenience of &amp;wanted calls, including -eval statements:</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">use vars qw/*name *dir *prune/;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">*name   = *File::Find::name;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">*dir    = *File::Find::dir;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">*prune  = *File::Find::prune;</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">sub wanted;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"># Traverse desired filesystems</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">File::Find::find({wanted =&gt; \&amp;wanted}, &#39;/etc&#39;);</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">exit;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">sub wanted {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">    my ($dev,$ino,$mode,$nlink,$uid,$gid);</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &amp;&amp;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">    (int(-M _) &lt; 1) &amp;&amp;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    -f _ &amp;&amp;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">    print(&quot;$name\n&quot;);</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;">

<br></div></div>