Perl でファイルのタイムスタンプを変更する


小ネタ。「【Unix】タイムスタンプを変更する」を調べたときに使った Perl スクリプト。

#!/usr/bin/perl use strict;
use warnings;
use Date::Manip;
my @s = stat "IMG_0036.MOV";
my $atime = $s[8];
my $mtime = UnixDate "2010-08-14T14:29:17", "%s";
utime $atime, $mtime, "IMG_0036.MOV";

Perl でファイルのタイムスタンプを変えるには utime 関数を使う。例では atime は元のファイルのものをそのまま使い、mtime だけを指定の日時に変更している。どちらのパラメータもエポック時で指定する必要があるが、その際 Date::Manip モジュールの UnixDate 関数を使うと便利だ。

【Perl】Date::Manip モジュールで日付文字列を解析する(関数型インターフェイス編)
http://blog.remora.cx/2010/07/date-manip-in-functional-interface.html

コメントを残す