处理图形文件并尝试使用 mv 按顺序重命名

处理图形文件并尝试使用 mv 按顺序重命名

我一直在寻找一个回答类似问题的旧问题,但显然我不太擅长使代码工作。我使用的是 zsh 而不是 bash,但其他 bash shell 脚本运行良好,所以我认为还可以。

我已经从提示中尝试过(内联)

$i=107;for i in *.jpg;do mv "$i" "$i.jpg" $i=$((i+1)); done

基本上,我希望当前的名称如下:

107.jpg 108.jpg 109.jpg 110.jpg

等等到列表的末尾。

希望有人可以帮助我编写代码,我想使用 seq 吗?

谢谢,

答案1

您想要使用两个单独的变量来递增索引和处理文件名:

i=107; for file in *.jpg; do mv "$file" "$((i++))".jpg; done

答案2

由于您正在使用,您可以通过使用其模块zsh来避免显式循环:zmv

autoload zmv

i=107; zmv -n '*.jpg' '$[i++].jpg'

-n一旦您对建议的操作感到满意,请删除。

相关内容