#!/usr/bin/perl use Digest::MD5; use File::Copy; use File::Basename; opendir THISDIR, "$ARGV[0]" or die "serious dainbramage: $!"; @allfiles = readdir THISDIR; closedir THISDIR; foreach $i (@allfiles) { ($ext) = ($i =~ /.+\.(.+)$/); $file = $ARGV[0] . "/" . $i; open(FILE, $file) or die "Can't open '$file': $!"; binmode(FILE); $md5 = Digest::MD5->new->addfile(*FILE)->hexdigest; $dest = $ARGV[0] . "/" . $md5 . ".$ext"; move($file,$dest); #print "$file -> $dest\n"; }