Linux 批量重命名具有特定名称的所有文件

Linux 批量重命名具有特定名称的所有文件,linux,terminal,rename,Linux,Terminal,Rename,我在抓取(并自动命名)图像时犯了一个错误,现在在数百个文件夹中,它们被称为…08.jpg,09.jpg,010.jpg,11.jpg,12.jpg。。。问题是010.jpg,它的前导值为零 是否有一个终端命令可以递归地(图像集都有自己的文件夹)将所有名为010.jpg的图像重命名为10.jpg?我不是bash pro,但这应该可以做到 for i in /path/to/directory/* do mv ${i}/010.jpg ${i}/10.jpg done 这有助于您在目标目录

我在抓取(并自动命名)图像时犯了一个错误,现在在数百个文件夹中,它们被称为…08.jpg,09.jpg,010.jpg,11.jpg,12.jpg。。。问题是010.jpg,它的前导值为零


是否有一个终端命令可以递归地(图像集都有自己的文件夹)将所有名为010.jpg的图像重命名为10.jpg?

我不是bash pro,但这应该可以做到

for i in /path/to/directory/*
do
    mv ${i}/010.jpg ${i}/10.jpg
done

这有助于您在目标目录(/tmp/)中找到要查找的文件,并且它将从任何文件名中删除前导零,因此它比指定完整的“移动到”名称要灵活一些


我以前从未使用过bash,因为第一个答案对我来说更具“可读性”,所以我使用了这个答案。而且这是一个一次性的问题,所以现在解决了。不过还是要谢谢你:)
for i in $(find /tmp/ -name 010.jpg) ; { mv $i $(dirname $i)/$(basename $i | sed 's/^0//'); }