#!/usr/bin/perl -w
use strict;
use File::Copy;
use File::Spec;
my($chptr, $base_path, $new, $dir);
$dir = "Full Metal Alchemist"; #Some dir
opendir(FMA, $dir) or die "Can't open FMA dir";
while($chptr = readdir FMA){
$base_path = File::Spec->rel2abs($dir).'/'; #find absolute path of $fir
if($chptr =~ m(Chapter\w*\d*)){ #some regex to avoid the .. and . dirs
$new = join(" 0", split(/\W/, $chptr)); #modify said sub directory
rename "$base_path$chptr", "$base_path$new" ? print "Renames $base_path$chptr to
$base_path$new\n" : die "rename failed $!";
}
}
closedir FMA;
最初,我的腳本只使用相對路徑來執行move操作,但由於某些原因,這會使子目錄不受影響。我的下一步是去絕對路徑,但無濟於事。我只是在學習Perl,所以我覺得我犯了一個簡單的錯誤。我哪裏錯了? TIA在Perl中重命名子目錄
你想避免什麼問題? – aleroot
目前,我從重命名聲明中得到誤判。我想重命名子目錄。我唯一避免的是試圖重命名核心。和..鏈接 –