我想用以下名称重命名多个文件:
Screenshot at 2013-08-10 19:29:09.jpg
为:
0001.jpg
或者基本上除了原始名称之外的其他任何东西都可以更方便地使用。
我尝试过以下脚本:
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4
mv ${i} ${new}
let a=a+1
done
来自here。
但由于原始文件名中的空格,它会给我以下错误。
mv: target `0021.jpg' is not a directory
如果有人能告诉我完成这项工作的正确方法,我会很感激。 谢谢!
答案 0 :(得分:1)
我的经验不足..在另一个thread找到解决方案。
解决方案是使用"$i"
代替$(i)
。
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4
mv "$i" ${new}
let a=a+1
done