Commit | Line | Data |
6e21c824 |
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 |
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 |
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; |