Directories may contain lots of files.
Therefore, wild-carded commands like rm may result
in an overflow. The following script helps
to clean-up such a directory:
#!/usr/bin/perl -w
sub yesno { print "$_[0] y/[n]: ";return (<STDIN> =~ /^(y|Y)$/);}
sub print_usage
{
print <<EOF;
The purpose of rm.pl is to delete many files.
Usage:
# rm.pl file_pattern [y]
'file_pattern' is a regular expression pattern.
Make sure that wildcard characters are quoted.
e.g.: rm.pl 'tst.*\.fio' y
EOF
1;
}
my ($file_spec, $flag, $rest) = @ARGV;
exit print_usage() if( !defined $file_spec || defined $rest);
$flag = 'n' if( !defined $flag);
opendir( D, ".");
@files = readdir(D);
closedir( D);
foreach my $fname (@files)
{
$fname =~ s/^\s*(.*?)\s*$/$1/; # remove white space
next if( $fname !~ /$file_spec/);
if( $flag eq "y" || yesno( "delete $fname"))
{
print " deleting $fname \n";
unlink $fname;
}
}
exit 0;