FIND(3)                  USER COMMANDS                    FIND(3)



NAME
     find - ファイルトリーのトラバースする

SYNOPSYS
         use File::Find;
         find(\&wanted, '/foo','/bar');
         sub wanted { ... }


DESCRIPTION
     関数 wanted() では、何でも自由に確認を行うことができます。
     このとき $dir には、現在のディレクトリ名が、$_ には、そのデ
     ィレクトリ内の現在のファイル名が入っています。 また、$name
     は "$dir/$_" を表わします。 この関数が呼ばれたときには、
     $dir へ chdir() しています。 この関数で $prune を設定すると、
     トリーの枝刈りができ、その枝の以降の検索を行ないません。

     このライブラリは、もともと find2perl ツールのためのもので、

         find2perl / -name .nfs\* -mtime +7 \
             -exec rm -f {} \; -o -fstype nfs -prune

     とすると、

         sub wanted {
             /^\.nfs.*$/ &&
             (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
             int(-M _) > 7 &&
             unlink($_)
             ||
             ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) &&
             $dev < 0 &&
             ($prune = 1);
         }

     のような出力が得られます。

     AFS を使っているときには、AFS にごまかされないように、変数
     $dont_use_nlink を設定してください。

     もう一つ、おもしろい wanted 関数を示します。 これは、実体の
     無いすべてのシンボリックリンクを探し出すものです:

         sub wanted {
             -l && !-e && print "bogus link: $name\n";
         }









Perl module manpages Last change: Release 5.0 Patchlevel 00     1