我有一个目录结构,其中包含多个子目录中的大量 JPEG/JPG、PNG、SVG 和 WEBP 图像。我想从这些图像中删除所有元数据,只保留图像正常运行所必需的信息(颜色配置文件、方向等)以及日期。然后我想将每个图像的 OwnerName 和 Artist 字段修改为给定的字符串。
拼凑文档中的信息我得出了以下命令:
exiftool -a -r -overwrite_original -ext JPG -ext JPEG -ext PNG -ext SVG -ext WEBP -all= \
--icc_profile:all -OwnerName="Hashim" -Artist="Hashim" -tagsfromfile @ -ColorSpaceTags myfolder
这包含了我想要做的所有事情,除了保留日期不变,因为我不确定应该使用哪个日期标签。
此命令适合我在此尝试执行的操作吗?其他文件类型是否可能需要更精细的处理,将它们与 JPG 分开处理是否更安全?
答案1
非常感谢星际极客因为他的宝贵ExifTool 论坛中的帮助,包括确认:
- PNG 和 WEBP 文件不需要任何特殊处理即可安全删除元数据,类似于 TIFF 文件
- SVG 文件根本没有文件级元数据,因此无法使用 ExifTool 为其写入元数据
感谢他的建议,我设法将命令精简到所需的最低限度:
exiftool -P -a -r -ext JPG -ext JPEG -ext PNG -ext WEBP -all= -OwnerName="Hashim" \
-Artist="Hashim" -tagsfromfile @ -ColorSpaceTags -Orientation -AllDates path/to/images/
这包括添加-P
标签以强制 ExifTool 保留文件系统日期而不是默认清除它们,以及添加-Orientation
和-AllDates
标签以防止删除方向和日期元数据。
我还删除了多余的,--icc_profile:all
因为-ColorSpaceTags
是捷径其中包括 ICC 配置文件以及其他与颜色相关的标签。
最后我删除了它,因为我更喜欢 ExifTool 的默认行为:它通过重命名(附加到文件名末尾)-overwrite_original
来备份原始文件。_original
添加-overwrite_original
将导致这些备份被自动删除。这不仅会使您无法在出现问题时快速恢复图像,而且如果您剥离元数据以优化带宽和/或存储空间,您将无法再将原始图像与剥离后的图像进行比较以确认您的优化收益。
您可以不必使用-overwrite-original
,而只需等待一段时间以确认所有图像看起来与之前相同,然后运行以下命令来删除不需要的备份文件:
find /path/to/images -type f -name "*_original" -delete