Search iEntry News



How Old Is That File?

By A.P. Lawrence
Expert Author
Article Date: 2004-11-19

Sometimes you want to know the age of a file. Perl has a "-M" test that gives you age in days, but this customer needed it in minutes. That's easy:

#!/usr/bin/perl
# howold.pl
$file=shift @ARGV;
@stat=stat $file;
$now=time();
$mtime=sprintf("%d",($now -$stat[10])/60);
# That's inode change time, stat[9] would be modification, and 8 is access
print "$mtimen";
You'd use this in a script like this:

OLD=`howold.pl myfile`
if [ "$OLD" -gt 20 ]
then
echo "older than 20 minutes"
else
echo "Younger"
fi


You could put the whole script on one line:

printf("%dn",(time() - (stat(@ARGV[0]))[10] )/60);

but that's much harder to follow and a lot easier to screw up.

*Originally published at APLawrence.com

About the Author:
A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com




Newsletter Archive | Article Archive | Submit Article | Advertising Information | About Us | Contact

PerlProNews is an iEntry, Inc. ® publication - 1998-2008 All Rights Reserved Privacy Policy and Legal