in reply to del files that is 7 days or older
Generally, I try to solve a problem in terms of the approach proposed by the questioner. But in this case, you have started down a rocky road that will involve the date::manip module or something similar in order to correctly handle months as alpha abbreviations (Jan, Feb, etc.) instead of numbers. It's do-able but more bother than it is worth probably. Here's a more perlish solution:
The key to this is the file test operator -M which returns the number of days old the given file is. Just the thing you needed.#!/usr/bin/perl -w use strict; my $file; my $dir_spec = '/home/archive/logs/old'; opendir(LOGDIR, $dir_spec) or die "Can't open $dir_spec: $!\n"; while ( defined($file = readdir(LOGDIR)) ) { if (-M "$dir_spec/$file" > 7) { unlink("$dir_spec/$file") or die "Can't delete $dir_spec/$file: $!\n"; } } closedir(LOGDIR);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: -M
by grahm (Novice) on Jun 29, 2002 at 18:56 UTC | |
by ariels (Curate) on Jun 30, 2002 at 06:52 UTC |