在Linux上将一组文件重命名为001、002 ...
我最初有一组图像,格式为image_001.jpg,image_002.jpg,…
我经历了他们,并删除了几个。现在,我想将剩余的文件重命名为image_001.jpg,image_002.jpg,…
是否有Linux命令可以很好地做到这一点?我对重命名很熟悉,但是看不到任何命令来排序这样的文件名。我在想,既然ls
*.jpg按顺序列出文件(有间隔),解决方案是将其输出传递到bash循环或其他东西中?
回答:
如果我理解正确,则有image_001.jpg,image_003.jpg,image_005.jpg,并且您想重命名为image_001.jpg,image_002.jpg,image_003.jpg。
编辑:这被修改为将临时文件放在当前目录中。正如Stephan202所指出的,如果temp在不同的文件系统上,则这可能会产生很大的不同。为了避免在循环中命中临时文件,它现在通过image
*
i=1; temp=$(mktemp -p .); for file in image*do
mv "$file" $temp;
mv $temp $(printf "image_%0.3d.jpg" $i)
i=$((i + 1))
done
以上是 在Linux上将一组文件重命名为001、002 ... 的全部内容, 来源链接: utcz.com/qa/428569.html