如何在 Mac OS X 中批量重命名文件?

如何在 Mac OS X 中批量重命名文件?

我有一堆文件,其名称类似于 MOV001.mpg、MOV002.mpg 等。它们都有不同的日期时间。

我该如何重命名它们,使它们变成 2012 08 05 13 45 33 MOV001.mpg、2012 09 02 23 45 07 MOV002.mpg 等?

换句话说,如何从我重命名的文件中提取日期和时间信息?

提前感谢您。

答案1

未经测试:

for f in *.mpg; do
  mv "$f" "$(stat -f "%m" -t "%Y %m %d %H %M %S" "$f") $f"
done

stat -f "%m"应该生成文件的最后修改日期,-t "%Y %m %d %H %M %S"应该根据您的要求格式化日期。

答案2

/path/to/file.ext原始问题指定生成的文件也以文件扩展名结尾。要以可移植的方式执行此操作,请在 bash 中从内置的with中获取扩展名${f##*.},结果为一行:

for f in *.FOO; do mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}" ; done

以及代码块

for f in *.FOO ; do
    mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}"
done

因此当您更改 FOO(例如从 *.mpg 到 *.png)时,输出文件名是合理的。

相关内容