#!/usr/perl
#批量修改文件名
&find_fileindir
(
"."
);
#在当前目录执行
sub
find_fileindir(){
local
(
$dir
) =
@_
;
opendir
(DIR,
"$dir"
||
die
"can't open this $dir"
);
local
@files
=
readdir
(DIR);
closedir
(DIR);
for
$file
(
@files
){
next
if
(
$file
=~m/\.$/ ||
$file
=~m/\.\.$/);
#剔除.和..
if
(
$file
=~/\.(cpp|cc|c)$/i){
#文件扩展名为cpp或者cc或者c的文件
print
"$dir\/$file \n"
;
my
$newFile
=
$file
;
$newFile
=~ s/cpp/h/;
#将“cpp”扩展名改为“h”
if
(-e
$newFile
){
#如果修改后会导致文件重名,则输出警告,不作处理
warn
"Can't rename $file to $newFile. The $newFile exists!\n"
;
}
else
{
rename
"$dir/$file"
,
"$dir/$newFile"
#重命名文件
or
warn
"Rename $file to $newFile failed: $!\n"
;
#如果重命名失败,则输出警告
}
elsif
(-d
"$dir/$file"
){
find_fileindir(
"$dir/$file"
);
}
}
}