我需要遞歸重命名每個文件和目錄。我將空格轉換爲下劃線,並將所有文件/目錄名稱改爲小寫。如何讓以下腳本在一次運行中重命名所有文件?目前,在轉換所有文件/目錄之前,腳本需要運行多次。代碼如下:Perl:遞歸重命名所有文件和目錄
#!/usr/bin/perl
use File::Find;
$input_file_dir = $ARGV[0];
sub process_file {
$clean_name=lc($_);
$clean_name=~s/\s/_/g;
rename($_,$clean_name);
print "file/dir name: $clean_name\n";
}
find(\&process_file, $input_file_dir);
如果「某個文件名」和「某個文件名」都存在於同一個目錄中,會發生什麼?對於非空目錄「Some Dir」和「some_dir」與同一個父級? – 2010-03-31 23:35:23
你知道Perl帶有重命名(3)腳本嗎? – 2010-03-31 23:50:11
@Pasi:這是「prename」。由於某種原因,Debian決定一如既往地將事情弄糟,並將其重命名爲「重命名」,從userlinux中取代原來的重命名。 – Juliano 2010-04-01 17:45:45