我目前有大量包含照片的目录。这些目录目前以 格式命名yymmdd_text
。我想将它们全部重命名为yyyy-mm-dd Text
(注意大写text
)。
我曾尝试使用来制作工作流程Automator
,但是rename Finder items
那里的功能非常有限。
答案1
将下面的代码保存到文本文件(例如“renameDir.pl”)。然后打开文件夹所在的终端窗口,并运行脚本renameDir.pl 14*
(或任何与要重命名的文件夹匹配的模式)。
#!/usr/bin/perl
use strict;
use warnings;
use File::Copy;
foreach my $dir (@ARGV) {
(my $year, my $month, my $day, my $text) = ($dir =~ m/^(\d\d)(\d\d)(\d\d)_(.*)/);
if ($year && $month && $day && $text) {
my $Text = ucfirst($text);
my $newDir = "20$year-$month-$day $Text";
print "Moving \"$dir\" to \"$newDir\"\n";
move($dir, $newDir) or die "Unable to rename $dir:\n$!\n";
}
else {
warn "Unable to parse $dir\n";
}
}
假设所有新文件夹名称都以 20xx 这样的年份开头,而不是 19xx,但您可以根据需要编辑脚本来处理这个问题。
答案2
例如,您不能只使用 cp 命令来复制并重命名您的目录吗?
cp /home/yymmdd_text/* /home/yy-mm-dd_text/