#!/usr/bin/perl -w # add/fix file extensions based on MIME type as detected by libmagic use File::LibMagic; use MIME::Types; $magic = File::LibMagic->new; $types = MIME::Types->new; for (@ARGV) { open my $fh, "<$_"; eval { $desc = $magic->info_from_handle($fh)->{mime_type}; @exts = $types->type($desc)->extensions; $ext = shift @exts; $ext eq "jpeg" and $ext = "jpg"; $src = $_; s/\.[^.]+$//; -e "$_.$ext" or rename $src, "$_.$ext"; }; }