1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use File::Find; my @dirs = @_ or die "No dir for search\n"; find(\&findthem, @dirs); sub findthem { # falls Dateiname nicht CostFunction_sum oder task.dat am Ende if ( $File::Find::name !~ /(CostFunction_sum|\Qtask.dat\E)$/ ) { # Datei löschen unlink $File::Find::name if -f $File::Find::name; # Verzeichnis löschen wenn nicht . oder .. rmdir $File::Find::name if -d $File::Find::name and $File::Find::name !~ /^\.\.?$/; } }
my @dirs = @ARGV or die "No dir for search\n";
ls -1 | grep -v "^\(aa\|bb\)$"
ls -1 | grep -v -f $HOME/file_excludes
ls -1 = list one file per line