在 Linux 上安装和使用 Exiftool
EXIF 工具是 Phil Harvey 在 Perl 上构建的广泛使用的元数据信息记录器。它是一种适用于各种文件类型的开源工具。 EXIF 代表 Exchangeable Image File Format,主要用于在 txt、png、jpeg、pdf、HTML 等各种文件类型中包含元数据。借助 EXIF 工具,我们还可以读取、写入和操作此类元数据信息。
安装:
Exiftool 是一个开源工具。该库是用独立于平台的 Perl 库构建的。
1. 将 git repo 克隆到您的系统上。
git clone https://github.com/exiftool/exiftool.git
2. 使用存储库中存在的测试文件测试该工具
cd exiftool
./exiftool t/images/ExifTool.jpg
或者,在 Ubuntu 发行版上,您可以使用:
sudo apt install libimage-exiftool-perl
或者干脆使用下面的命令它会自动捕获上面的命令。
sudo apt install exiftool
要直接从源下载,请使用以下命令。这适用于任何 Linux 发行版,包括 CentOS。
wget https://sourceforge.net/projects/exiftool/files/Image-ExifTool-12.16.tar.gz
tar xvf Image-ExifTool-12.16.tar.gz
cd Image-ExifTool-12.16/
./exiftool t/images/ExifTool.jpg
要全局安装它,请安装文件。
注意:当它在 Perl 上运行时,您必须在 Linux 发行版上安装 Perl。
perl Makefile.PL
make
make test
make install
您现在可以通过键入 exiftool 在终端的任何位置运行 ExifTool。
用法:
读取元数据:
1. 要从文件中提取整个元数据列表,请使用以下命令。
exiftool
2. 要提取 id 及其十六进制格式的 Exif 标签,请使用 -H 标志运行上述命令。
exiftool -H
3. ExifTool 维护一个文件最常见的 Exif 标签列表,可以使用以下标志查看。
exiftool --common
4.使用ExifTool我们还可以提取预览图像或图像文件的缩略图。
exiftool -PreviewImage [filename.jpg] > [Output.jpg]
exiftool -ThumbnailImage [filename.jpg] > [Output.jpg]
例子:
exiftool -b -PreviewImage CSM30803.CR2 > abc.jpg
-b 提取二进制信息并将结果存储在 abc.jpg 文件中
exiftool -b -ThumbnailImage CSM30803.CR2 > thumb.jpg
5. 我们还可以用详细模式生成扩展信息。这将向我们显示有关它正在执行的过程的综合数据。
exiftool -v
编写元数据:
要编辑任何元数据,我们可以使用它对应的 Exif 标签进行更改。
注意:我们只能更改没有写保护的标签。
exiftool -= “Geek Alert”
删除元数据:
如果我们想擦除文件元标记中的所有现有信息,我们可以使用以下命令。此命令将从文件中删除所有元数据,留下所有基本或受保护的标签信息。
exiftool -all=
保存元数据:
我们可以将 exiftool 的输出保存在另一个文件(最好是文本文件)中,以存储信息以供以后使用。
exiftool [filename] > [meta-data.txt]
cat
应用:
1. 将图像文件按年和月分类到文件夹中
我们可以结合元数据中的信息来解决各种任务。假设我们有很多图像,我们想将它们分类到新文件夹中,并按年、月或天排列,那么我们可以使用以下命令:
该命令根据年份和月份将旧图像复制到目录中。
exiftool -o '-Directory
- -o复制所有图像(以下称为旧图像)并从中制作新图像
- -Directory
使用图像创建日期将图像移动到新的目标文件夹 - ./newimage/%y/%y%m是新目录的相对路径,它遵循命名约定为年,子目录为年月。
- -r是在源文件夹上递归执行命令
- ./oldimages是存储原始图像的源文件夹
例子:
要在当前目录中进行更改,请将图像移动到目录中。
exiftool '-Directory
我们可以看到图像被移动到一个新文件夹中,其中包含年和月日子文件夹。
2.根据创建日期重命名图像文件
假设您在一家摄影公司工作,并且您单击了许多活动的照片,但照片混合在一起,现在手动分离每张图像将需要大量浪费的精力。
在这里,我们将利用 exiftool 根据元数据创建日期和时间的 exif 标签来分离/重命名当前文件夹及其子文件夹中存在的所有原始文件。
exiftool '-filename
- -filename
使用图像的创建数据和时间重命名原始图像 - -d设置日期/时间值的格式
- %y%m%d-%H%M%S%%-03.c.%%e是重命名文件的格式。
例如:这会将 2021 年 2 月 1 日 14:08 拍摄的文件重命名为 20210201-1408-000.xxx。时间后面的三个零是 %%-03.c 以日期格式放在那里的副本数。
重命名文件时,副本号会不断增加,直到找到尚不存在的文件名。
- .%%e保留原始文件扩展名
- 使用.%%le (用于重命名小写扩展名)或.%%ue (用于重命名大写)
- -r是在源文件夹上递归执行命令
- ./imagepath是要重命名所有图像的目录的相对路径。
例子:
在当前目录中进行更改。
exiftool -d %Y-%m-%d_%H.%M.%S%%-c.%%e "-filename
ExifTool 是一个非常强大的文件元数据处理工具。它得到了广泛的应用,所有这些标志和选项的可能性是无穷无尽的。