}
}
+sub do_rm ($) {
+ my ($fn) = @_;
+ if ($rm) {
+ my $r= system 'rm', ($recurse ? ('-r') : ()), "--", $fn;
+ die "run rm: $!\n" unless defined($r) && $r >= 0;
+ exit 12 if $r;
+ }
+}
+
sub implement () {
foreach (reverse @files) {
next unless @{$_->{U}};
printf "remove %s - age %.1f\n",
$_->{F}, $_->{A};
if ($rm) {
- my $r= system 'rm', ($recurse ? ('-r') : ()), "--", $_->{F};
- die "run rm: $!\n" unless defined($r) && $r >= 0;
- exit 12 if $r;
+ my $tmp = "$_->{F}.rm";
+ rename $_->{F}, $tmp or die "rename $_->{F} to $tmp: $!\n";
+ do_rm($tmp);
}
}
}