Nov 102005
私はMP3ファイル作成をLinux上のGrip+LAMEでおこなっています。
それをrsyncのアーカイブモード(-a)で同期するようにしているのですが、転送先オーディオ機器のファイルシステムはFATなので、Timestampを偶数倍でしか保持していません。
参考:[NT] NTFSからFATへのファイルのコピー時に日時が変わる
そのまま同期してもTimestampが異なるので、何度でも同期対象になってしまい、せっかくのアーカイブモードが台無し。
そこで、カレントディレクトリ下にあるファイル群のTimestamp(atime,ctime)を偶数倍に切り上げるスクリプトです。
#!/usr/bin/perl -w use File::Find; find(\\&change_timestamp, "."); sub change_timestamp { my $file = $File::Find::name; my ($cur_atime,$cur_mtime)=(stat($file))[8,9]; my $new_atime = $cur_atime + $cur_atime % 2; my $new_mtime = $cur_mtime + $cur_mtime % 2; return if $cur_atime == $new_atime && $cur_mtime == $new_mtime; utime $new_atime, $new_mtime, $file; }
…つまんないネタですみません。
Sorry, the comment form is closed at this time.