logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

File::Touch - update file access and modification times, optionally creating files if needed

Author

Nigel Wetters Gourlay (nwetters@cpan.org)

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

Updateaccessandmodificationtimes,creatingnonexistentfiles use File::Touch; my @files = ('one','two','three'); my $count = touch(@files); print "$count files updated\n"; Setaccesstimeforward,leavemodificationtimeunchanged 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"; Setmodificationtimeback,updateaccesstime,donotcreatenonexistentfiles 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"; Makeachangetoafile,keepingitstimestampsunchanged use File::Touch; my $date_restorer = File::Touch->new(reference => $file); # Update the contents of $file here. $date_restorer->touch($file);

Name

File::Touch - update file access and modification times, optionally creating files if needed

Repository

<https://github.com/neilb/File-Touch>

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);

See Also