#! /usr/local/bin/perl $Usage = <) { next if (/\/\./); next if (/\/XX\.delete\-me\./); s/[ \t\r\n]*$//; # print "I>$_\n"; $s = ( -s $_ ); $m = ( -M $_ ) * 24; $Fs{$s} .= "$m\t$_\r"; } close(I); } } while(($size,$fns) = each(%Fs)) { $fns =~ s/[ \t\r\n]*$//; local(@t) = sort { $a <=> $b; } split(/\r+/,$fns); next if($#t < 1); local(%sz); undef %sz; local(@fn); undef @fn; foreach $a ( @t ) { $a =~ /\t+/; $sz{$'} = $`; push(@fn, $'); } print stderr "## These files are same filesize:\n " . join(" (newer)\n ",@fn) . "\n"; &disp_images(@fn); print stderr "## Erase newer file(s)? "; $ans = &read_ans("Y", "n", "q"); print stderr "## Your answer received: $ans\n"; if($ans eq 'q') { last; } if($ans eq 'n') { next; } pop(@fn); &remove_files(@fn); } print stderr "Done.\n"; exit; sub read_ans { local(@as) = @_; local($ans); print stderr "[" . join("/", @as) . "]: "; $ans = ; $ans =~ y/A-Z/a-z/; foreach $ia ( 0 .. $#as ) { local($a) = $as[$ia]; $a =~ s/^(.).*$/\1/; $a =~ y/A-Z/a-z/; if($ans =~ /$a/) { return $as[$ia]; } } return $as[0]; } sub remove_files { local(@fs) = @_; foreach $f ( @fs ) { $f =~ /\/[^\/]*$/; local($fd,$ff) = ( $`, $&, ); $ff =~ s/^\/+//; local($fn) = "${fd}/XX.delete-me.$ff"; local($com) = "mv $f $fn"; print stderr "[Ex:Remove] $com\n"; system($com); } return; } sub disp_images { local(@fs) = @_; print stderr "## Please check the images. I\'m waiting for you.."; $xv = 'xv -geom +0+0 ' . join(" ", @fs); system("$xv"); print stderr "\n"; }