跳转至内容

Zoph/使用命令行工具

来自Wikibooks,开放世界中的开放书籍

许多用户几乎完全使用Zoph Web界面来操作Zoph。但是,更高级的用户可能更喜欢使用命令行界面(CLI)来执行某些任务。Zoph有一个名为zoph的CLI客户端,可用于导入照片并对数据库中已有的照片进行(批量)更改。

可以在此处找到所有选项的详细概述。

首先,您需要一个有效的zoph.ini文件才能使用CLI客户端。如果您在系统上安装了多个Zoph实例,与Web界面相比,一个重要的区别在于CLI无法自动确定您尝试将照片导入到哪个Zoph安装(实例)。默认情况下,它将采用第一个实例,否则您需要指定--instance CLI选项。请参阅zoph.ini以获取一些示例。

Web界面

[编辑 | 编辑源代码]
Screenshot: import settings on configuration page
截图:配置页面上的导入设置

配置页面(在管理员下)中有一些与导入相关的选项。有关概述,请参见右侧的屏幕截图。这些选项应该不言自明。

指定要导入的照片

[编辑 | 编辑源代码]

当然,您希望告诉Zoph它应该导入哪些照片。照片列表始终最后指定。您可以简单地指定文件名,但也可以使用Shell的“通配符”功能一次指定多张照片。

假设您在一个目录中有一堆照片加上一个文本文件

zoph@zoph $ ls
IMG_1203.JPG     IMG_1207.JPG     IMG_1211.JPG     IMG_1215.JPG     IMG_1219.JPG
IMG_1204.JPG     IMG_1208.JPG     IMG_1212.JPG     IMG_1216.JPG     IMG_1220.JPG
IMG_1205.JPG     IMG_1209.JPG     IMG_1213.JPG     IMG_1217.JPG     IMG_1221.JPG
IMG_1206.JPG     IMG_1210.JPG     IMG_1214.JPG     IMG_1218.JPG     photos.txt

如果要导入所有照片,可以执行以下操作

zoph@zoph $ zoph *

但是,当zoph尝试导入文本文件时,这将导致错误,因此最好执行以下操作

zoph@zoph $ zoph *.JPG

甚至

zoph@zoph $ zoph IMG_12*.JPG

但是,如果您只想导入其中的一些照片,例如1203到1205、1210到1219(1213除外)、1220和1221。当然,您可以分别指定每个文件

zoph@zoph $ zoph IMG_1203.JPG IMG_1204.JPG IMG_1205.JPG IMG_1210.JPG IMG_1211.JPG IMG_1212.JPG IMG_1214.JPG
            IMG_1215.JPG IMG_1216.JPG IMG_1217.JPG IMG_1218.JPG IMG_1219.JPG IMG_1220.JPG IMG_1221.JPG

好吧,我不知道你怎么样,但我肯定没有买电脑来自己做事情,所以为什么不让电脑来处理呢?

zoph@zoph $ zoph IMG_120[3-5].JPG  IMG_121[^3]*.JPG IMG_122*.JPG

这样节省了很多打字时间,不是吗?顺便说一下,这不是zoph的功能,而是您Shell的功能(可能是Bash)。

组织照片

[编辑 | 编辑源代码]

您可以像上面描述的那样导入照片,然后使用Zoph Web界面来组织它们,但为什么不立即组织它们呢?

相册、类别和人物

[编辑 | 编辑源代码]

您可以将照片放入一个或多个相册和一个或多个类别中(实际上是零个或多个,因为您不必将它们放入相册或类别中)。为此,请使用--album--category命令行选项。如果照片上有任何人物,则可以使用--person选项将人物添加到照片中。请记住,照片列表始终位于其他选项之后。重要的是要意识到相册、类别或人物必须已存在于数据库中。

导入IMG_1300.JPG并将其放置在Summer相册和Landscapes类别中

zoph@zoph $ zoph --album "Summer" --category "Landscapes" IMG_1300.JPG

导入john.jpg并将其放置在Family相册、Portraits类别中,并指定John Doe在该图片中

zoph@zoph $ zoph --album "Family" --category "Portraits" --person "John Doe" john.jpg

导入family.jpg并将其放置在FamilySummer相册中,并指定John Doe、Johnny Doe和Jane Doe在该图片中

zoph@zoph $ zoph --album "Family" --album "Summer" --category "Portraits" --person "John Doe, Johnny Doe, Jane Doe" family.jpg

导入guitarists.jpg并将其放置在MusicMusicians类别中,并指定Hank Williams、Jimi Hendrix和Brian May在该图片中

zoph@zoph $ zoph --category "Music, Musicians" --person "Hank Williams" --person "Jimi Hendrix" --person "Brian May" guitarists.jpg

如您所见,您可以通过多次重复--album--category--person选项,或仅指定一次并为其提供一个用逗号分隔的相册、类别或人物列表来添加多个相册、类别或人物。

摄影师和地点

[编辑 | 编辑源代码]

当然,您还希望记录照片是在哪里以及由谁拍摄的。这与相册、类别和人物的工作方式几乎相同,除了您只能存储每个的一个。同样,在通过CLI使用人物和地点之前,它们必须存在于数据库中。使用--photographer选项指定摄影师,使用--location选项指定地点。

导入IMG_1400.JPG并设置John Doe为摄影师

zoph@zoph $ zoph --photographer "John Doe" IMG_1400.JPG

导入IMG_1401.JPG并设置“Berlin”为拍摄照片的地点

zoph@zoph $ zoph --location "Berlin" IMG_1401.JPG

其他字段

[编辑 | 编辑源代码]

Zoph 可以存储关于您的照片的更多属性。其中许多属性将自动从照片的 EXIF 信息中读取。您也可以使用--field 选项手动设置这些字段。有关字段的完整列表,请参阅 --field

导入IMG_1416.JPG并设置标题

zoph@zoph $ zoph --field "Title=A nice photo" IMG_1416.JPG

导入目录

[编辑 | 编辑源代码]

在导入过程中,Zoph 会将您的照片移动(或复制)到您设置为“image_dir”的目录。您可以在 zoph.ini 中设置此目录。在此目录下,Zoph 可以创建子目录。这由 --path--dateddirs--hierarchical 选项控制。使用 --path,您可以手动设置将在“image_dir”和文件名之间插入的路径。使用 --dateddirs--hierarchical,Zoph 将根据照片的(EXIF-)日期创建目录。如果您同时指定了路径名和 --dateddirs--hierarchical,则该位置将首先包含路径,然后包含日期目录。

假设 IMG_1480.JPG 拍摄于 2010 年 5 月 5 日,IMG_1481.JPG 拍摄于 2010 年 5 月 13 日,并且 image_dir 设置为/data/photos.

zoph@zoph $ zoph IMG_1480.JPG IMG_1481.JPG
zoph@zoph $ ls /data/photos
 mid
 thumb
 IMG_1480.JPG
 IMG_1481.JPG

好的,现在让我们添加一个 --path

zoph@zoph $ zoph --path "family" IMG_1480.JPG IMG_1481.JPG
zoph@zoph $ ls /data/photos
 family
zoph@zoph $ ls /data/photos/family
 mid
 thumb
 IMG_1480.JPG
 IMG_1481.JPG

和 --dateddirs

zoph@zoph $ zoph --dateddirs IMG_1480.JPG IMG_1481.JPG
zoph@zoph $ ls /data/photos
 2010.05.05
 2010.05.13
zoph@zoph $ ls /data/photos/2010.05.05
 mid
 thumb
 IMG_1480.JPG

如果您只有少量照片,这当然很好,但是当您的收藏集增长并且您拍摄的照片跨越数百天时,您最终将拥有数百个日期目录。出于这个原因,存在分层日期目录

zoph@zoph $ zoph --hierarchical IMG_1480.JPG IMG_1481.JPG
zoph@zoph $ ls /data/photos
 2010
zoph@zoph $ ls /data/photos/2010
 05
zoph@zoph $ ls /data/photos/2010/05
 05
 13
zoph@zoph $ ls /data/photos/2010/05/05
 mid
 thumb
 IMG_1480.JPG

当然,您也可以同时使用路径和日期目录

zoph@zoph $ zoph --path "family" --hierarchical IMG_1480.JPG
zoph@zoph $ zoph --path "family" --dateddirs IMG_1481.JPG
zoph@zoph $ ls /data/photos
 family
zoph@zoph $ ls /data/photos/family
 2010
 2010.05.13

(顺便说一句,当同时指定 --dateddirs--hierarchical 时,分层将优先)。

使用 dirpattern

[编辑 | 编辑源代码]

使用 --dirpattern CLI 选项,您可以根据照片所在的目录自动分配相册、类别、人物、摄影师、位置或路径。您可以通过指定一个模式来做到这一点,Zoph 将根据该模式使用目录名称分配给正确的组织者。此模式由字母列表组成,其中每个字母代表一个目录。您可以使用的字母为:a(相册)、c(类别)、l(位置)、p(人物)、P(摄影师)和D(路径)。

假设您有以下目录结构

|- John Doe
|   |- Walk in the park
|   |   |- Trees
|   |   |   |- IMG_2001.JPG
|   |   |   |- IMG_2002.JPG
|   |   |   |- Flowers
|   |   |        |- IMG_2003.JPG
|   |   |- Flowers
|   |       |- IMG_2004.JPG
|   |- A day in the forest      
|   |   |- Trees
|   |   |   |- IMG_2005.JPG
|   |   |   |- IMG_2006.JPG
|   |   |   |- Birds
|   |   |       |- IMG_2007.JPG
|   |   |- Animals
|   |       |- IMG_2008.JPG
|   |- Summer Holiday
|       |- IMG_2009.JPG
|       |- IMG_2010.JPG
|- Jane Doe
    |- A day in the forest      
    |   |- Trees
    |   |   |- DSC_1000.JPG
    |   |   |- DSC_1001.JPG
    |   |   |- Birds
    |   |       |- DSC_1002.JPG
    |   |- Animals
    |       |- DSC_1003.JPG
    |- Summer Holiday
        |- DSC_1004.JPG
        |- DSC_1005.JPG

现在,您可以进入顶层目录并使用--dirpattern选项运行 Zoph 导入,以自动为每张照片分配摄影师、相册和一些类别

zoph --import -r --dirpattern "Pacc" *

Zoph 现在将导入整个目录结构,使用第一级目录名称分配摄影师(dirpattern 中的P),第二级分配相册(a),第三级和第四级分配类别(cc)。在此示例中,IMG_2001.JPGIMG_2010将存储为摄影师“John Doe”,照片DSC_1000.JPGDSC_1005.JPG将存储为摄影师“Jane Doe”。IMG_2001.JPGIMG_2004.JPG将具有相册“A walk in the park”。

IMG_2005.JPGIMG_2008.JPG以及DSC_1000.JPGIMG_1003.JPG将位于相册“A day in the forest”中。

IMG_2009.JPG, IMG_2010.JPG, DSC_1004.JPGDSC_1005.JPG将位于相册“Summer Holiday”中。

IMG_2001.JPG, IMG_2002.JPG, IMG_2003.JPG, IMG_2005.JPGIMG_2007.JPGDSC_1000.JPGIMG_1002.JPG将位于类别 Trees 中。

IMG_2003.JPGIMG_2004.JPG将位于类别 Flowers 中。这意味着IMG_2003.JPG将同时分配给 Trees 和 Flowers。同样,DSC_1002.JPG将同时分配给 Trees 和 Birds。

IMG_2008.JPGDSC_1003.JPG将位于类别 Animals 中。

最后,“Summer Holiday”相册中的照片将不会分配任何类别。

控制方式zoph工作

[编辑 | 编辑源代码]

Zoph CLI 客户端有几个选项可以控制其工作方式,上面已经给出了 --dateddirs--hierarchical 的示例。更多设置可以在 选项 中找到。




华夏公益教科书