linux - 如何在 Linux 命令行中从 JPEG 获取日期和时间?
问题描述
在过去的 15 年里,我拍摄了数千张数码照片。不幸的是,我的存档存在一些问题:
- 文件夹包含同一张照片的副本,但可能名称不同。
- 有些相机会将编号重置,例如 IMG_9999.jpg 归零,所以如果我只是将它们全部复制到命名的目录中,就会出现命名冲突。
- 我有多个相机,所以有些文件名称相同,但主题不同。
- 尽管它们来自五个不同的相机,但它们都是 JPEG,跨越多年,因此 JPEG 的格式可能会有所不同。
我的解决方案是将多个存档文件夹中的所有图像复制到一个输出文件夹中,按日期和时间的降序命名它们,并从文件中提取该数据,加上文件的 sha1sum:
2012-04-01_16:34_87514f3c2734f963891089cef0bb547f5d36451f.jpg
这样,重复项被删除,同一张照片的多个副本不能存在。
#!/bin/bash
for i in *.jpg
do
date=`echo "2019-08-10"`
checksum=`sha1sum $i | awk -F" " '{ print $1}'`
cp $i OUT/$date\_$checksum\.jpg
echo "Copied "$i" to OUT/"$date\_$checksum\.jpg"."
done
我在上面创建了这个脚本,它通过 sha1sum 将文件复制到另一个文件夹。如何准确获取照片的拍摄日期和时间,以便将数据也添加到文件名中?
解决方案
推荐阅读
- python - 如何使用 Pyspark 计算 RDD 的平均值
- multiprocessing - 如何保存在 python 中使用两个单独的处理器运行的两个函数的输出?
- python-3.x - 在 cur.execute 中作为 var 的表
- python - TypeError:使用字典检查数组时,字符串索引必须是整数
- c# - 使用 UTC 转换获取时区
- visual-studio-code - 如何访问本地超级账本结构
- arrays - 如何将数组的元素分配给 MongoDB 文档中的新键
- java - 使用 Java(JDBC) 连接 Azure 数据库失败
- javascript - 重新加载时如何使喜欢的数量留在页面上
- c++ - 可变模板类 - 0 长度包构造函数冲突