Answers:
如果遇到麻烦,应始终检查手册页。
man exiftools
哪个应该是这样的:
--TAG
Exclude specified tag from extracted information. Same as the -x
option. May also be used following a -tagsFromFile option to
exclude tags from being copied, or to exclude groups from being
deleted when deleting all information (ie. "-all= --exif:all"
deletes all but EXIF information). But note that this will not
exclude individual tags from a group delete. Instead, individual
tags may be recovered using the -tagsFromFile option (ie. "-all=
-tagsfromfile @ -artist"). Wildcards are permitted as described
above for -TAG.
就像是:
exiftool -overwrite_original -all= -tagsFromFile @ -title -caption -keywords /Users/andyl/photos/*.jpg
应该管用。确保使用确实以这种方式命名标签exif /path/to/file.jpg
。
该命令做什么?-all=
删除所有标签,-tagsFromFile @
从源文件中获取列出的标志,在这种情况下,它@
代表当前文件(您当然可以在这里用固定文件代替-tagsFromFile pic.jpg
),然后将它们写入目标位置。
如果您只想从原始文件中删除某些标签(即,没有从文件之间的标签传输,而是从同一个文件中删除),则不需要进行-tagsFromFile
切换,而是<
需要告知您将其沿文件传输。
注意:截至目前(版本10.79)-common<common
无法设置复合标签,因此使用-common
来传输标签会破坏操作,例如,转移Flash
到Model
。因此,我的代码是显式的,并包含-common
通常包含的每个标签。无论如何,这似乎是一个好主意。
exiftool -All:All= \
-DateTimeOriginal<DateTimeOriginal \
-Model<Model \
-LensModel<LensModel \
-FocalLength<FocalLength \
-ISO<ISO \
-ExposureTime<ExposureTime -ShutterSpeedValue<ShutterSpeedValue -BulbDuration<BulbDuration \
-ApertureValue<ApertureValue -FNumber<FNumber \
-WhiteBalance<WhiteBalance \
-Flash<Flash \
test.jpg
# Or, if you want to use `-TagsFromFile`:
exiftool -All:All= \
-TagsFromFile test.jpg \
-DateTimeOriginal \
-Model \
-LensModel \
-FocalLength \
-ISO \
-ExposureTime -ShutterSpeedValue -BulbDuration \
-ApertureValue -FNumber \
-WhiteBalance \
-Flash \
test.jpg
还请注意,我的代码与exiftool应用程序文档相矛盾,该文档包括一些示例,而这些示例我根本无法立即完成此任务(以及10.79版)。