home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-26 | 1.1 KB | 45 lines | [TEXT/MPS ] |
- =head1 NAME
-
- find - traverse a file tree
-
- =head1 SYNOPSYS
-
- use File::Find;
- find(\&wanted, '/foo','/bar');
- sub wanted { ... }
-
- =head1 DESCRIPTION
-
- The wanted() function does whatever verificationsyou want. $dir contains
- the current directory name, and $_ the current filename within that
- directory. $name contains C<"$dir/$_">. You are chdir()'d to $dir when
- the function is called. The function may set $prune to prune the tree.
-
- This library is primarily for the C<find2perl> tool, which when fed,
-
- find2perl / -name .nfs\* -mtime +7 \
- -exec rm -f {} \; -o -fstype nfs -prune
-
- produces 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 &&
- ($prune = 1);
- }
-
- Set the variable $dont_use_nlink if you're using AFS, since AFS cheats.
-
- Here's another interesting wanted function. It will find all symlinks
- that don't resolve:
-
- sub wanted {
- -l && !-e && print "bogus link: $name\n";
- }
-
-