exiftool
是一个独立于平台的命令行和GUI应用程序,用于读取、写入和编辑图像和媒体文件的元信息。元数据信息可以是GPS坐标、标签、创建时间、编辑时间、设备名称等。
安装
exiftool支持Windows、Ubuntu、Fedora等大多数操作系统,我们将在本部分安装exiftool。
Ubuntu、Debian、Mint、Kali
exiftool是从名为 libimage-exiftool-perl
. 因此,我们将安装与apt命令如下。
$ sudo apt install libimage-exiftool-perl

软呢帽、CentOS、RedHat
exiftool提供了包名称 perl-Image-ExifTool.noarch
. 我们将使用以下命令为Fedora、CentOS和RedHat安装exiftool。
$ sudo dnf install perl-Image-ExifTool.noarch

窗户
我们可以从以下URL下载exiftool for Windows操作系统。这个zip文件提供了一个没有任何安装的可执行文件。
https://www.sno.phy.queensu.ca/~phil/exiftool/exiftool-11.31.zip
我们只需要用WinZip,7zip,WinRAR等解压文件。
![图片[3]-如何在Linux、Windows、Kali、Ubuntu、Mint中安装和使用exiftool,并举例说明-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2019/03/poftut_img_5c8887decec99.png)
语法
exiftool的语法如下所示。我们可以看到,对于不同的用例有4种不同的语法,比如读取元数据、写入元数据、复制元数据和其他操作。

列出给定图像/文件的所有元数据
我们可以通过提供要检查的文件来列出所有元数据。在本例中,我们将列出 Tux.png
. 我们可以看到这是一个png文件,是一种图像格式。
$ exiftool Tux.png

我们可以看到,一个简单的png文件中有很多元数据。
-
ExifTool Version Number
指定11.10版本的工具。 -
File Name
指定文件名“Tux.png”。 -
Directory
指定当前工作目录的路径。 -
File Size
指定给定文件的大小,即37 kB。 -
File Modification Date/Time
指定修改日期和时间,即“2019:03:13 05:45:32-07:00”。 -
File Access Date/Time
指定访问日期和时间,即“2019:03:13 05:45:32-07:00”。 -
FileInode Change Date/Time
指定要更改的Inode或磁盘更改日期和时间 “2019:03:13 05:45:32-07:00”. -
File Permissions
指定要删除的文件的当前用户、组和其他权限rw-rw-r--
. -
File Type
指定本例中为“PNG”的文件类型。 -
File Type Extension
指定文件的扩展名,在本例中为“png”。 -
MIME Type
指定本例中为“image/png”的文件的mime代码。 -
Image Width
指定给定图像的宽度像素计数,在本例中为300。 -
Image Height
指定给定图像的高度像素计数,在本例中为354。 -
Bit Depth
指定像素位或质量,在本例中为8位。 -
ColorType
指定颜色表示,在本例中为“带Alpha的RGB”。 -
Compression
指定给定图像的压缩类型,在本例中为“放气/充气”。 -
Filter
指定筛选器类型。 -
Background Color
指定要使用的RGB表示 “255 255 255”. -
Modify Date
指定图像在原始图像中修改的日期,即“2018:12:25 19:33:00”。 -
Datecreate
指定原始图像“2018-12-25T19:33:00+00:00”的创建日期和时间。 -
Datemodify
指定原始图像“2018-12-25T19:33:00+00:00”的修改日期和时间。 -
Megapixels
指定百万像素或百万格式的像素计数,在本例中为0.106。
相关文章: Linux stat命令教程及示例
将元数据导出到HTML文件
我们可以将给定文件或图像的元数据导出为HTML文件格式 -h
选项。在本例中,我们将导出 Tux.png
转换为HTML名称Tux.HTML。
$ exiftool -h Tux.png > Tux.html

以CSV格式列出元数据
我们可以以CSV格式打印给定的文件和图像元数据。可以是单个文件或图像,也可以是包含多个文件和图像的整个目录。在本例中,我们将打印
$ exiftool -csv /home/ismail/Downloads/

列出特定元数据
我们还可以使用 grep
命令。在本例中,我们将打印 Image Width
元数据。
$ exiftool Tux.png | grep "Image Width"

写入/设置/更改元数据
我们还可以写入或覆盖给定文件的元数据。在本例中,我们将覆盖 Rights
的元数据 All.doc
. 我们将使用 -overwrite_original
选项并提供要更改的元数据或使用元数据值设置的元数据。
$ exiftool -overwrite_original -rights="©2019 Poftut.com" All.doc