【问题标题】:Rename multiple files names with whitespace in terminal在终端中用空格重命名多个文件名
【发布时间】:2013-08-21 12:51:25
【问题描述】:

我想用如下名称重命名多个文件:

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

如果有人能告诉我完成这项工作的正确方法,我将不胜感激。 谢谢!

【问题讨论】:

  • 你试过用 " 包围你的变量吗? mv "${i}" ${new} 例如

标签: terminal


【解决方案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

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2017-10-28
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多