Commit | Line | Data |
---|---|---|
6e21c824 LW |
1 | # Usage: |
2 | # require "find.pl"; | |
3 | # | |
4 | # &find('/foo','/bar'); | |
5 | # | |
6 | # sub wanted { ... } | |
7 | # where wanted does whatever you want. $dir contains the | |
8 | # current directory name, and $_ the current filename within | |
9 | # that directory. $name contains "$dir/$_". You are cd'ed | |
10 | # to $dir when the function is called. The function may | |
11 | # set $prune to prune the tree. | |
12 | # | |
13 | # This library is primarily for find2perl, which, when fed | |
14 | # | |
15 | # find2perl / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune | |
16 | # | |
17 | # spits out something like this | |
18 | # | |
19 | # sub wanted { | |
20 | # /^\.nfs.*$/ && | |
21 | # (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && | |
22 | # int(-M _) > 7 && | |
23 | # unlink($_) | |
24 | # || | |
25 | # ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) && | |
26 | # $dev < 0 && | |
27 | # ($prune = 1); | |
28 | # } | |
8990e307 LW |
29 | # |
30 | # Set the variable $dont_use_nlink if you're using AFS, since AFS cheats. | |
6e21c824 | 31 | |
dffa8cde | 32 | use File::Find (); |
6e21c824 | 33 | |
28312d68 RS |
34 | *name = *File::Find::name; |
35 | *prune = *File::Find::prune; | |
36 | *dir = *File::Find::dir; | |
37 | *topdir = *File::Find::topdir; | |
38 | *topdev = *File::Find::topdev; | |
39 | *topino = *File::Find::topino; | |
40 | *topmode = *File::Find::topmode; | |
41 | *topnlink = *File::Find::topnlink; | |
6e21c824 | 42 | |
dffa8cde | 43 | sub find { |
44 | &File::Find::find(\&wanted, @_); | |
6e21c824 | 45 | } |
dffa8cde | 46 | |
6e21c824 | 47 | 1; |