NAME
File::Touch - update file access and modification times, optionally creating files if needed
SYNOPSIS
use File::Touch 0.12;@file_list = ('one.txt','../two.doc');$count = touch(@file_list);use File::Touch;$reference_file = '/etc/passwd';$touch_obj = File::Touch->new(reference => $reference_file,no_create => 1);@file_list = ('one.txt','../two.doc');$count = $touch_obj->touch(@file_list);
DESCRIPTION
This module provides both a functional and OO interface for changing the file access and modification times on files. It can optionally create the file for you, if it doesn't exist.
Note: you should specify a minimum version of 0.12, as per the SYNOPSIS, as that fixed an issue that affected systems that have sub-second granularity on those file times.
Here's a list of arguments that can be used with the object-oriented contruction:
- atime_only => [0|1]
-
If nonzero, change only the access time of files. Default is zero.
- mtime_only => [0|1]
-
If nonzero, change only the modification time of files. Default is zero.
- no_create => [0|1]
-
If nonzero, do not create new files. Default is zero.
- reference => $reference_file
-
If defined, use timestamps from this file instead of current time. The timestamps are read from the reference file when the object is created, not when
"<-"touch>> is invoked. Default is undefined.
- time => $time
-
If defined, then this value will be used for both access time and modification time, whichever of those are set. This time is overridden by the
"atime"and"mtime"arguments, if you use them.
- atime => $time
-
If defined, use this time (in epoch seconds) instead of current time for access time.
- mtime => $time
-
If defined, use this time (in epoch seconds) instead of current time for modification time.
Examples
Update access and modification times, creating nonexistent files
use File::Touch;my @files = ('one','two','three');my $count = touch(@files);print "$count files updated\n";
Set access time forward, leave modification time unchanged
use File::Touch;my @files = ('one','two','three');my $day = 24*60*60;my $time = time() + 30 * $day;my $ref = File::Touch->new( atime_only => 1, time => $time );my $count = $ref->touch(@files);print "$count files updated\n";
Set modification time back, update access time, do not create nonexistent files
use File::Touch;my @files = ('one','two','three');my $day = 24*60*60;my $time = time() - 30 * $day;my $ref = File::Touch->new( mtime => $time, no_create => 1 );my $count = $ref->touch(@files);print "$count files updated\n";
Make a change to a file, keeping its timestamps unchanged
use File::Touch;my $date_restorer = File::Touch->new(reference => $file);# Update the contents of $file here.$date_restorer->touch($file);
REPOSITORY
<https://github.com/neilb/File-Touch>
AUTHOR
Nigel Wetters Gourlay ([email protected])
COPYRIGHT
Copyright (c) 2001,2007,2009 Nigel Wetters Gourlay. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.