perlメモ:ファイルのタイムスタンプを変更するには?

ファイルのタイムスタンプつまり日付ですが、これを変更するにはutime関数を使います。
ファイルの最終アクセス日時と最終変更日時を変更することが出来ます。
日付を変更したいファイルはリスト形式で複数渡すことが出来ます。
●フォーマットはこんな感じ

utime(最終アクセス日時,最終変更日時,ファイルパス又はファイルパスのリスト);

●サンプル1

#!/usr/bin/perl
$atime = $mtime = time;
utime $atime, $mtime, @ARGV;

●サンプル2
単純に一個のファイルのタイムスタンプを修正する場合はこんな感じ

#!/usr/bin/perl
$atime = $mtime = time;
utime $atime, $mtime, ‘./hogehoge.txt’;

●戻り値は、変更することが出来たファイルの数。
●perl 5.7.2からは、最終アクセス日時と最終変更日時にundefを設定すると現在の日時が設定されるようです。まだ5.6系の環境も多いと思うので利用する場合は注意かな?

utime undef, undef, @ARGV;

●詳しくは下記のページを参照の事。(英語)
http://perldoc.perl.org/functions/utime.html

(Visited 748 times, 1 visits today)

タグ :