Mac OS 终端查找特定关键字图像并复制

Mac OS Terminal Find Specific Keyword image and Copy

我有很多照片,我为我想要作为背景的照片分配了一个名为 "background" 的关键字。 我的照片位于名为 "Photos" 的文件夹中,该文件夹有很多子文件夹。

是否有一个终端命令可以在文件夹 "Photos" 中找到所有包含关键字 "background" 的照片并将这些照片复制到 "Folder B"?

顺便说一句,我有 Exiftool,这可能会有所帮助。

拉尔夫

编辑: 'Achtergrond'表示背景

我试过了:exiftool -o ~/test/MapA -if '$Subject=Achtergrond' ~/test/MapB 也试过这个: -if '$Subject eq "Achtergrond"'

exiftool -G1 -a -s -api MDItemTags=1 File.jpg| grep Achtergrond
[MacOS]         MDItemKeywords                  : Achtergrond
[XMP-dc]        Subject                         : Achtergrond

exiftool File.JPG  | grep Achtergrond
Subject                         : Achtergrond

我试过了:

exiftool -o ~/test/MapA -if '$XMP-dc:Subject eq "Achtergrond"' ~/test/MapB 
    1 directories scanned
    0 image files read

我在这里错过了什么?

使用 exiftool 执行此操作的基本命令是
exiftool -o '/path/to/Folder B/' -if '$Keywords=~/background/i' /path/to/Photos/

您确实需要检查关键字的实际存储位置。根据您用来标记它们的程序,背景标记可能存储在 XMP:SubjectIPTC:KeywordsMDItemKeywords 中。甚至 MDItemUserTags,我也不太熟悉 Mac 系统标签的工作原理。

我建议 运行
exiftool -G1 -a -s -api MDItemTags=1 FILE.JPG
在您知道包含 "background" 标签的文件上查找包含 "background" 的标签。如果它不是 Keywords,则将上面命令中的 Keywords 替换为该标记名称

上述命令的分解:
-o '/path/to/Folder B/':这告诉 exiftool 将文件复制到路径 '/path/to/Folder B/'。如果输出目录不存在,则需要尾部斜杠,否则 exiftool 将只创建一个名为 "Folder B" 的文件。如果路径中有空格或空格需要用反斜杠转义,则需要在路径两边加上引号。

-if '$Keywords=~/background/i':这对 Keywords 标签执行不区分大小写的 RegEx 检查,看它是否包含 "background"。如果是,则命令将在该文件上执行,否则将跳过该文件。