#!/usr/bin/perl use v5.14; my $binidentify = '/usr/bin/identify'; for my $file (<*.jpg>){ my $cmd = sprintf "%s -format '%[exif:DateTime]' %s", $binidentify, $file; my $outty = `$cmd`; next if ($? != 0); next if ($outty !~ m/^(\d{4})\:(\d{2})\:(\d{2})/); my ($year, $month, $day) = ($1, $2, $3); my $cmd = sprintf "mkdir -p %s/%s", $year, $month; `$cmd`; my $cmd = sprintf "mv %s %s/%s/", $file, $year, $month; `$cmd`; }