#!/usr/bin/perl -w use strict; my $base = shift @ARGV; $base ||= "."; lc_filenames($base); sub lc_filenames{ my($dir)=@_; $dir||="."; opendir DIR, $dir; while(defined(my $file=readdir DIR)){ if ($file =~ /^\.+$/) {next} if(-f ("$dir/$file")){ if($file=~/[A-Z]/){ my $newname=lc($file); rename("$dir/$file","$dir/$newname"); } } elsif(-d ("$dir/$file")){ if($file=~/[A-Z]/){ my $newname=lc($file); rename("$dir/$file","$dir/$newname"); $file = $newname; } lc_filenames("$dir/$file"); } } }