批量重命名、更改后缀?

批量重命名、更改后缀?

如何批量替换多个文件的后缀?

我有很多文件,例如

  • NameSomthing-min.png
  • NameSomthing1-min.png
  • NameSomthing2-min.png

我想将它们全部更改为

  • NameSomthing.png
  • NameSomthing1.png
  • NameSomthing2.png

-min即,从名称中删除字符。我该怎么做?

答案1

该脚本可能会有所帮助:

for file in *-min.png; do
    echo mv "$file" "${file%-min.png}.png"
done

删除回显以实际执行命令。

答案2

这取决于你的外壳。我使用zsh,这就是我这样做的方式:

for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done

我建议您查看 shell 的联机帮助页,并查看类似于“参数扩展”的部分(在zsh手册页)。

bash类似的解决方案也可用于其他 shell(您没有指定使用哪一种)。

请注意,您的特定解决方案始终取决于数据和您的目标。如果您想删除名称和后缀之间的“-”作为分隔符,则可以这样做。如果没有,您可能需要稍微调整参数扩展。

相关内容