【发布时间】:2018-12-05 13:14:00
【问题描述】:
我已在目录中编号图像:
001.jpg 002.jpg 003.jpg ... 010.jpg
我想将它们重命名为相反的顺序:
001.jpg -> 010.jpg
002.jpg -> 009.jpg
...
010.jpg -> 001.jpg
我有做以下的想法
i=1; for f in $(ls -r *.jpg); do mv "$f" "$(printf %03d $i)".jpg; ((i++)); done
重命名已经被替换的005.jpg会失败。
我可以执行第一个循环,将它们重命名为 temp001.jpg,然后运行上面的循环。但是有没有一种好方法可以在一个命令中做到这一点?
【问题讨论】:
-
为什么不在脚本中执行,这样您就可以使用多个步骤?
-
正如我所说,我可以在一个脚本中执行两个操作,但我想知道这是否可以一步完成。
-
好吧,通过多个步骤使其更安全可能会更容易。更少的代码不等于更好的代码。
标签: macos command-line terminal