【问题标题】:Batch rename all files with a specific name批量重命名具有特定名称的所有文件
【发布时间】:2014-04-26 01:46:57
【问题描述】:

我在抓取(并自动命名)图像时犯了一个错误,现在在数百个文件夹中它们被称为 ...08.jpg、09.jpg、010.jpg、11.jpg , 12.jpg... 问题是 010.jpg,它有一个前导零。

是否有一个终端命令可以递归地(图像集都有自己的文件夹)重命名 所有 名为 010.jpg 到 10.jpg 的图像?

【问题讨论】:

    标签: linux terminal rename


    【解决方案1】:

    我不是 bash 专业人士,但应该这样做。

    for i in /path/to/directory/*
    do
        mv ${i}/010.jpg ${i}/10.jpg
    done
    

    【讨论】:

      【解决方案2】:

      这可以帮助您在目标目录 (/tmp/) 中找到您要查找的文件,它会从任何文件名中删除前导零,因此它比指定完整的“移动到”更灵活一些名字。

      for i in $(find /tmp/ -name 010.jpg) ; { mv $i $(dirname $i)/$(basename $i | sed 's/^0//'); }
      

      【讨论】:

      • 我以前从未使用过 bash,而且由于第一个答案对我来说更具“可读性”,所以我使用了那个。这也是一个一次性的问题,所以现在已经解决了。不过还是谢谢:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2021-04-23
      相关资源
      最近更新 更多