AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 745075
Accepted
Tom Brossman
Tom Brossman
Asked: 2016-03-13 04:13:52 +0800 CST2016-03-13 04:13:52 +0800 CST 2016-03-13 04:13:52 +0800 CST

如何将 JPEG 文件批量重命名为图像日期,添加每天重置的计数?

  • 772

我正在使用pyrenamer我的照片集,除了一个问题外,它的效果很好。我希望它按拍摄日期的元数据重命名照片,最后是一个三位数字。我库中的每个文件夹代表一天,我希望照片以 001-999 的数字结尾,每个文件夹从 001 开始。示例文件名是 2016-01-31-001.jpg。

Shotwell 使用选项中的结构处理在导入时创建目录结构%Y/%m/%d,但是当我在 ~/Pictures 目录中递归使用 pyrenamer 时,我看不到预期的结果。它按日期重命名,但在文件夹之间继续递增,而不是从每个新文件夹的 001 开始。有没有更简单的方法来解决这个问题?

我知道我可以添加更多元数据变量并根据小时、分钟和秒重命名,但这会提供比我想要的更长的文件名。我的相机每秒也可以拍摄多张照片,所以这对于重命名是有问题的。

请问最简单的方法是什么?我喜欢使用 pyrenamer,但 bash 脚本也可以。

电流输出:

Pictures/
├── Folder 1/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
├── Folder 2/
│   ├── YY-MM-DD-003.jpg
│   └── YY-MM-DD-004.jpg
...

期望的输出:

Pictures/
├── Folder 1/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
├── Folder 2/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
...
batch-rename
  • 1 1 个回答
  • 3897 Views

1 个回答

  • Voted
  1. Best Answer
    Tom Brossman
    2016-04-01T04:41:12+08:002016-04-01T04:41:12+08:00

    要将您的整个 JPEG 照片图像库重命名为YYYY-MM-DD-XXX.jpg格式,每天从 -001 开始计数,请使用以下命令exiftool:

    exiftool -fileOrder DateTimeOriginal -recurse -extension jpg -extension jpeg -ignoreMinorErrors '-FileName<CreateDate' -d %Y-%m-%d%%-.3nc.%%e ~/Pictures/
    

    为了充分解释该命令,以下是它的工作原理。

    1. exiftool启动脚本。
    2. -fileOrder DateTimeOriginal强制 exiftool 按照拍摄顺序处理图像。这对于按照原始时间顺序在一天内保留图像编号至关重要。
    3. -recurse递归处理子目录,这在您使用 Shotwell 导入时很有帮助,因为照片放置在按日期组织的目录中。
    4. -extension jpg -extension jpeg将确保只处理 JPEG 文件。(请注意,这些不是特定于案例的,并且 jpg=JPG 所以我们可以捕获所有内容)
    5. -ignoreMinorErrors忽略任何不影响我们期望结果的错误(通常是读取此操作不需要的无关标签的问题)。
    6. '-FileName<CreateDate'将照片创建日期放在文件名中。
    7. -d %Y-%m-%d%%-.3nc.%%e此处-d设置所需的输出日期格式。我们将使用连字符的四位数年份,然后是两位数的月份和日期 ( %Y-%m-%d),然后是一个以 001 ( ) 开头的三位数字%%-.3nc,保留原始文件扩展名 ( .%%e)。
    8. ~/Pictures/是最后一项,它只是exiftool应该使用命令处理的目录。

    关于错误的说明,有-ignoreMinorErrors帮助,但您仍然可能会看到可以安全忽略的消息“警告:错误的 PreviewIFD 目录”或“警告:没有从 /path/to/problem/image.jpg 设置可写标签”。第二个我无法解决,但我只看到了几张图片,所以我在 Nautilus 中手动重命名它们作为一种解决方法。

    此命令仍有待改进,但它已经过测试并适用于大型(40GB,13000 张图像)照片库,速度很快且不会产生错误,只是无法重命名缺少大多数现代相机都会创建的标签的偶尔图像.

    • 6

相关问题

  • 如何一次重命名多个文件?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve