【问题标题】:terminal : revert filename order终端:恢复文件名顺序
【发布时间】: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


【解决方案1】:

您可以使用这样的脚本文件。

n=10
for i in {1..10}
do
    let aa=n-i+1     
    cp $i.jpeg $aa.jpg
done
rm *.jpeg
mv *.jpg *.jpeg

请务必检查脚本是否有效,因为它会删除原始文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2016-02-29
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多