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;