#!/usr/bin/perl # Rename digital camera pictures to reflect the date they were taken # (C) Christian Renz 20030615 use strict; use warnings; use Image::Info qw(image_info); use Term::ProgressBar; opendir CURDIR, '.' or die "Cannot open current directory: $!\n"; my @files = grep /.jpe?g$/i, readdir CURDIR; my $progress = Term::ProgressBar->new({name => 'Renaming images', count => scalar @files, ETA => 'linear'}); $progress->max_update_rate(1); foreach (@files) { # input format: 2003:06:13 21:30:41 # output format: 2003_0613_213041 my $date = image_info($_)->{DateTimeOriginal}; if ($date =~ /^(\d\d\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)$/) { my $name = "$1_$2$3_$4$5$6.jpg"; rename $_, $name unless -e $name; } $progress->update(); }