![如何在 Linux 中批量重命名一组文件名?](https://linux22.com/image/1279875/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%AD%E6%89%B9%E9%87%8F%E9%87%8D%E5%91%BD%E5%90%8D%E4%B8%80%E7%BB%84%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9F.png)
我有一个名为的图像文件夹:
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
为了测试它,只要将其添加echo
到mv
行前面即可。
答案2
您需要适当命名的‘重命名’命令!
尝试这样的操作:
rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg
它以 perl 正则表达式作为第一个参数,因此您的模式匹配和操作选项非常广泛。有关完整详细信息,请参阅 rename(1) 手册页。