如何在一个命令中更改所有文件前缀?

Ita*_*vka 7 files filename rename

我需要将所有文件的后缀(都是相同的 .JPEG)更改为 .jpeg(大写与小写)。
有没有快速的方法呢?

Lek*_*eyn 14

使用rename默认安装的 Perl 程序:

rename 's/\.JPEG$/.jpeg/' *.JPEG
Run Code Online (Sandbox Code Playgroud)

第一个参数是一个 Perl 正则表达式,匹配以 结尾的文件名.JPEG并将其替换为.jpeg.

第二个参数选择应该匹配的文件,在您的情况下,当前目录中的每个文件都以.JPEG. 您当然可以指定不同的位置:

rename 's/\.JPEG$/.jpeg/' ~/Pictures/*.JPEG
Run Code Online (Sandbox Code Playgroud)

我看过的其他答案:

  • rename s/.JPEG$/.jpeg/ *- 这也将重命名文件StupidJPEGStupi.jpeg因为点匹配任何字符。.JPEG$是一个正则表达式
  • rename 's/\.JPEG$/\.jpeg/' *- 有效,但效率较低,因为它将当前目录中的所有文件传递到rename.
  • rename -n 's/.JPEG$/.jpeg/' *.JPEG- 该-n选项将显示正在重命名的文件,而不实际重命名它们(“试运行”)。因为只*.JPEG匹配后缀为 的文件.JPEG,所以这里不存在点匹配所有问题。