MAN page from Old RedHat 5.X perl-5.004-4.i386.rpm
File::Find
Section: Perl Programmers Reference Guide (3)
Updated: perl 5.004, patch 04
Index NAME
find - traverse a file tree
finddepth - traverse a directory structure depth-first
SYNOPSIS
use File::Find; find(\&wanted, '/foo','/bar'); sub wanted { ... } use File::Find; finddepth(\&wanted, '/foo','/bar'); sub wanted { ... } DESCRIPTION
The
wanted() function does whatever verifications you want.
$File::Find::dir contains the current directory name, and
$_ thecurrent filename within that directory.
$File::Find::name contains
"$File::Find::dir/$_". You are
chdir()'d to
$File::Find::dir whenthe function is called. The function may set
$File::Find::prune toprune the tree.
File::Find assumes that you don't alter the $_ variable. If you do thenmake sure you return it to its original value before exiting your function.
This library is primarily for the find2perl tool, which when fed,
find2perl / -name .nfs\* -mtime +7 \ -exec rm -f {} \; -o -fstype nfs -pruneproduces something like:
sub wanted { /^\.nfs.*$/ && (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && int(-M _) > 7 && unlink($_) || ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) && $dev < 0 && ($File::Find::prune = 1); }Set the variable
$File::Find::dont_use_nlink if you're using AFS,since AFS cheats.
finddepth is just like find, except that it does a depth-firstsearch.
Here's another interesting wanted function. It will find all symlinksthat don't resolve:
sub wanted { -l && !-e && print "bogus link: $File::Find::name\n"; } BUGS
There is no way to make find or finddepth follow symlinks.
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- BUGS
This document was created byman2html,using the manual pages.