#! /usr/bin/perl -w
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; #$running_under_some_shell
use File::Find ();
# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name = *File::Find::name;
*dir = *File::Find::dir;
*prune = *File::Find::prune;
my $target = "foo" ;
my $replacement = "bar" ;
my $startdir = "./" ;
# overwrite =0 only displays the operations it WOULD do
# set overwrite=1 to actually execute the changes
my $overwrite = 0 ;
print "Starting in directory \"$startdir\" and overwriting is \"$overwrite\"\n" ;
# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, $startdir);
exit;
sub wanted {
my $filename = $_ ;
# This was for debugging purposes, so I could watch it iterate through the files.
# print "Filename is: $filename\n" ;
if ($filename =~ m/$target/) {
$newfilename = $filename ;
$newfilename =~ s/$target/$replacement/ ;
print "Renaming: $filename\n" ;
print " $newfilename\n" ;
if ($overwrite) {
rename($filename, $newfilename) ;
}
}
}