#!/usr/bin/perl use strict; use warnings; use lib '/home/mike/system/lib'; use File::Find (); use Mike::File qw( is_working textbender_dir_list textbender_text_dir_list votorola_dir_list ); sub _wanted { my $f = $File::Find::name; # same variable name as likes of is_working(), for copy and paste-compatability of code ###########################( Filter Criteria : # is_working( $f ) or return; # -f and m'^\.#' and return; # CVS merger back-up files # $f =~ m'/\._/' and return; # if in junk directory # -r or return; # -d or return; # m'(?:text(?:-[0-9][0-9])?|conversion-verse-.+)\.xht$' || m'test.*\.(?:html|xht|xml)$' || $f =~ m'/scratch/[^/]+\.xht$' or return; # m'^\.wh\.' or return; # artifact files of unionfs. Typically .wh.__dir_opaque or .wh.. /email.html$/ or return; # $_ eq '_autoindex-summary.html' or return; # $_ eq 'private.jsm' and return; # /WP.+\.java$/ or return; # `grep " e `ff` print "$f\n"; # print "$_\n"; # system 'rm ' . $f; # system 'rm --interactive ' . $f; # system 'stat ' . $f; # system "chmod --changes o-r $_"; # system "chmod a-w $_"; # system "chown mike:mike $_"; } for my $dir ( ###########################( Directory Target # textbender_dir_list(), # textbender_text_dir_list(), # votorola_dir_list(), # '/mnt/lan/www/home/tester', # '/mnt/lan/www/home/v', '/home/mike', # '/home/mike/._', # '/home/mike/code/._', # '/home/mike/code/textbender/x', # '/home/mike/code/votorola/x', # '/home/mike/var/deploy/votorola', # '/home/tester/votorola', # '/mnt/lan/www/home/v/votorola', # '/var/cache/dump/home/mike', ){ -d $dir or die "not a dir: $dir\n"; # File::Find::find( {wanted=>\&_wanted}, $dir ); File::Find::find( {wanted=>\&_wanted, follow_fast=>1}, $dir ); # follows links } __END__ =pod =head1 SYNOPSIS emacs /usr/local/bin/ff ff e `ff` =head1 DESCRIPTION File finder. Like Unix L, but options and arguments are encoded directly in this script (F), which you normally edit prior to invoking. =cut ###########################( Filter Criteria : m'compile(?:-jar|-war)?' || $_ eq 'patch' or return; `grep 'sub deploy' $File::Find::name` or return; for my $p ( '20051013234121-8ef53-79bd34e9b646314e80f465db2ee123cc992f445e.gz', '20051015162819-8ef53-15406bd9224f7b5689468639c37ea5fb4c493c91.gz', '20051015202119-8ef53-fc34d90b29fdd44f9b77f48952584f37f9d00de7.gz', '20051015203950-8ef53-91251e7d5c1050b19d609a30558103c4a19c1810.gz', '20051016190308-8ef53-9bfd5dcd55b69a44e0ce481aa1ff973101e18809.gz', '20051022215036-8ef53-0c56a14fcd6c3478d5c3488b89e6b51220ee6868.gz', '20051024083018-8ef53-5a7798afd5f5190c9d56632fdf6c4dc53adc0510.gz', '20051029083344-8ef53-a01c5946ba3e7e5c040bcd0117f988eb6df2842d.gz', '20051219002953-8ef53-79dfbfe70894cc8e908db32877d4e457b08ab4ba.gz', '20060212014545-8ef53-4e3f17efee5c06c664d59e35b13efef11bbf3777.gz', '20060408200459-8ef53-2113b03f20ec5a6729b0d293282659304be7ce65.gz', '20060417194532-8ef53-52129ba7f83df525380408debd9abfc12ba7a319.gz', '20060420235318-8ef53-375c4532c696cf764a45af0b29a4b3b6968fa374.gz', '20060423030100-8ef53-4ffb68b4cd3af936504aa9aba597c8a4860de2d4.gz', #'20050705005655-8ef53-048d73667c8c66ed0942773655342bcb82046cc2.gz', #'20050705060817-8ef53-ea0ca9eac94bcd6b1b39bf9eb01e676f711cc630.gz', '20050717221814-8ef53-5e644d35d4667b8a998146af908f11602d70f58e.gz', '20050719002346-8ef53-c2424cdbf2692212eee0ba5827250aa0d68ba764.gz', '20050719005734-8ef53-e8cef6cc02f6cd4b35fa4eb3bbe09795d5e5bd9d.gz', '20050724220423-8ef53-715056939eb2da78da6d3f45d8904b8619f3259c.gz', '20050725001944-8ef53-6f675aa0e02ad2dac503078279a37d287e7fc0f3.gz', '20050731090420-8ef53-e8bbf42f070cbdf9df24d0e5e8d57b2ff31e0c8b.gz', '20050803105626-8ef53-55dbf5cb44ad554c2eda7723862e8a3caa777955.gz', '20050810094718-8ef53-7fed8b0805c5a35fecad39ad958d9911bcd0ee9e.gz', '20050813113106-8ef53-33779414e1cf19bd8536b61df6ada8f1c75a4182.gz', '20050823025625-8ef53-4e1bc6fa639a59805af491f8a09c10c34c46c76d.gz', '20050825053821-8ef53-25dda679cefa1244a641aa286c8d4387c527ed31.gz', '20050909053446-8ef53-7a6f3abfb5379c7fbab8a21e53740648bda132d4.gz', '20051006065014-8ef53-6e4cd359bdd9c84bc70972fe791e1a170e065792.gz', '20051012211912-8ef53-27720be277f9b6466001727ebfbf22dd37c4ce80.gz', ){ $p eq $_ and print "$f\n"; } ###########################( Directory Target : File::Find::find( {wanted=>\&_wanted}, $dir ); # does not descend into linked directories File::Find::find( {follow_fast=>1, wanted=>\&_wanted}, $dir ); File::Find::finddepth( {follow_fast=>1, wanted=>\&_wanted}, $dir );