在 OSX 中批量重命名目录

在 OSX 中批量重命名目录

我目前有大量包含照片的目录。这些目录目前以 格式命名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/

相关内容