如何在 Linux 中批量重命名一组文件名?

如何在 Linux 中批量重命名一组文件名?

我有一个名为的图像文件夹:

pic001-2.png
pic002-2.png
pic003-2.png 

我如何将它们重命名为以下内​​容?

pic001.png
pic002.png
pic003.png 

我已尝试过mv "pic*-2.png" "pic*.png"但仍然出现错误。

答案1

-2这将删除每个文件名中找到的第一个文件:

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

为了测试它,只要将其添加echomv行前面即可。

答案2

您需要适当命名的‘重命名’命令!

尝试这样的操作:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

它以 perl 正则表达式作为第一个参数,因此您的模式匹配和操作选项非常广泛。有关完整详细信息,请参阅 rename(1) 手册页。

相关内容