longer apart than specified; default is 0.1 unit
-n do not really delete
-r recursive removal (rm -r)
+ --rename-only rename to *.rm, but do not delete
--help
example:
/home/ian/junk/expire-iso8601 14x1 4x7
our @oldfiles;
our @files;
-our $rm = 1;
+our $enable = 2;
our $recurse = 1;
our $unit = 86400;
our $slop;
sub do_rm ($) {
my ($fn) = @_;
- if ($rm) {
+ if ($enable >= 2) {
my $r= system 'rm', ($recurse ? ('-r') : ()), "--", $fn;
die "run rm: $!\n" unless defined($r) && $r >= 0;
exit 4 if $r;
next if @{$_->{U}};
printf "remove %s - age %.1f\n",
$_->{F}, $_->{A};
- if ($rm) {
+ if ($enable >= 1) {
my $tmp = "$_->{F}.rm";
rename $_->{F}, $tmp or die "rename $_->{F} to $tmp: $!\n";
do_rm($tmp);
last if $_ eq '-' || $_ eq '--';
if (m/^-[^-]/) {
while (m/^-./) {
- if (s/^-n/-/) { $rm=0; }
+ if (s/^-n/-/) { $enable=0; }
elsif (s/-r/-/) { $recurse=1; }
elsif (s/-D/-/) { $debug++; }
elsif (s/-u(\d+)$//) { $unit=$1; }
elsif (s/-s(\d+)$//) { $slop=$1; }
else { badusage "unknown short option $_" }
}
+ } elsif (m/^--rename-only$/) {
+ $enable=1;
} elsif (m/^--help$/) {
print $usage or die $!;
exit 0;