如何使用Linux中的Exiftool管理图像元数据
该详细的指南说明了什么是Exiftool ,如何在Linux上安装Exiftool以及如何使用它使用实际示例来管理图像元数据信息。
最后,我们将简要了解两种类型的元数据标准( EXIF和XMP)之间的区别。甚至还有一张Exiftool备忘单,可以帮助您记住命令!
目录
什么是Exiftool?
菲尔·哈维(Phil Harvey)开发的Exiftool是一个强大的命令行应用程序和Perl库,旨在以各种文件格式管理元数据。
使用Exiftool,我们可以管理嵌入在各种数字文件中的隐藏详细信息(IE元数据)。这些细节可以包括:
- 拍摄照片的日期和时间,
- 使用的相机设置,
- 位置信息(GPS坐标),
- 作者信息,
- 对文件进行的编辑,
- 还有很多。
Exiftool在不同平台(Linux,MacOS和Windows)上工作,有两种口味:
- PERL库:这使程序员可以在其应用程序中集成Exiftool功能。
- 命令行应用程序:这是一个基于文本的工具,供用户直接与Exiftool交互。
如果您每天都在处理图像,视频,音频文件或PDF,我可以保证Exiftool可能是您的最佳伴侣!
注意: EXIF代表更改后的法师格式。
Exiftool的主要特征
Exiftool以其广泛的功能而闻名,可满足各种元数据管理需求:
- 支持多种元数据格式: Exiftool可以处理许多元数据格式,例如EXIF,GPS,IPTC,XMP,JFIF,JFIF,GEOTIFF,ICC配置文件,Photoshop IRB,FlashPix,AFCP,AFCP,ID3等。
- 宽文件格式兼容性:它可以与许多文件类型一起使用,包括JPEG,PNG,TIFF,RAW,MP4,MOV和AVI。
- 独立于平台的: Exiftool可用于Windows,MacOS和基于UNIX的系统。
- 可自定义的输出:它提供多个输出格式化选项,包括选项卡 - 删除,HTML,XML和JSON。
- 多语言支持: Exiftool提供各种语言的输出,包括英语,法语,德语,日语等。
在Linux中安装Exiftool
Exiftool可以通过几种方式安装在Linux上。
在Debian/Ubuntu安装Exiftool
Exiftool在流行Linux操作系统的默认存储库中可用。
对于Debian,Ubuntu和其他基于Debian的发行版,您可以使用APT软件包管理器安装Exiftool:
sudo apt更新 sudo apt安装exiftool
这将安装Exiftool及其依赖关系。
在Fedora中安装Exiftool
对于Fedora,您可以使用DNF软件包管理器:
sudo dnf安装perl-image-exiftool
安装exiftool f rom源
如果您希望从源安装Exiftool,请按照以下步骤:
1。下载最新版本:
在撰写本指南时,Exiftool的最新版本为12.89 。让我们使用命令下载它:
WGET https://exiftool.org/image-exiftool-12.89.tar.gz
2。提取下载的文件:
tar xvf image-exiftool-12.89.tar.gz
3。导航到提取的目录:
CD Image-Exiftool-122.89
4。安装Exiftool :
确保已安装了开发工具。然后运行以下命令一个:
perl makefile.pl 制作 进行测试 Sudo进行安装
使用git安装Exiftool
您也可以克隆Exiftool存储库并安装它:
1。克隆存储库:
git克隆https://github.com/exiftool/exiftool.git
2。导航到克隆目录:
CD Exiftool
3。运行Exiftool :
./ exiftool/path/to/image
这些方法应帮助您在Linux系统上启动并运行。
如何使用Exiftool来管理Linux中的图像元数据
以下是一些基本命令,以说明如何使用Exiftool:
阅读元数据
从图像文件读取元数据:
Exiftool Image.jpg
此命令显示与image.jpg关联的所有元数据。
例子:
我将显示名为ostechnix.png的图像文件的元数据。
Exiftool ostechnix.png
样本输出:
Exiftool版本编号:12.16 文件名:ostechnix.png 目录:。 文件大小:6.4 KIB 文件修改日期/时间:2020:08:22 15:21:00 05:30 文件访问日期/时间:2024:07:22 17:52:28 05:30 文件Inode更改日期/时间:2024:07:11 13:44:03 05:30 文件权限:rwxrwxrwx 文件类型:PNG 文件类型扩展名:PNG MIME类型:图像/PNG 图像宽度:267 图像高度:267 位深度:8 颜色类型:带alpha的RGB 压缩:放气/膨胀 过滤器:自适应 交叉:不隔离 单元x的像素:11811 单位y的像素:11811 像素单元:仪表 图像尺寸:267x267 百万像素:0.071
写元数据
在图像文件中添加或修改元数据:
Exiftool -Artist =“您的名字” image.jpg
此命令将Artist标签设置为Image.jpg中的“您的名字”。
例子:
将艺术家标签设置/更改为ostechnix.png中的“ Senthil Kumar”:
让我们通过阅读文件的元数据来验证作者的名称是否确实更新了:
正如您在上面的输出中看到的那样,添加了艺术家名称。
注意:编写信息时,通过将“ _original”添加到文件名中来保存原始文件。您必须保留原件的副本,或在擦除原件之前彻底验证新文件。
复制元数据
将元数据从一个文件复制到另一个文件:
exiftool -tagsfromfile source.jpg target.jpg
此命令将所有元数据标签从source.jpg复制到target.jpg。
删除特定的元数据标签
删除特定标签:
exiftool -tagname =文件名
例如,从image.jpg中删除艺术家标签:
Exiftool -Artist = Image.jpg
删除所有元数据
要从文件中删除所有元数据:
Exiftool -all = image.jpg
此命令从image.jpg中删除所有元数据。
批处理处理
批处理处理使您可以同时将元数据更改应用于多个文件。
一次编辑元数据,以一次为多个文件:
Exiftool -Artist =“ John Doe” *.jpg
此命令为目录中的所有JPEG文件设置Artist标签。
递归批处理处理
要处理子目录中的文件,请使用-r选项:
Exiftool -r -Artist =“ John Doe”/path/to/directory
此命令为/path/to/to/Directory及其子目录中的所有JPEG文件设置Artist标签。
查看可用标签
查看所有可以编辑的标签的列表:
Exiftool -list
此命令列出了Exiftool可以读写的所有标签。
提取特定的元数据标签
exiftool -t -tricedate -ofture -shutterspeed -iso image.jpg
此命令从image.jpg提取创建的,孔径,shutterspeed和ISO标签。
例子:
基于元数据重命名文件
您可以使用Exiftool使用简单命令来重命名文件的“ tate Date”元数据:
exiftool -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - fileName <datetimeriginal image.jpg><p>此命令使用格式yyyy-mm-dd_hh-mm-ss基于其dateTimeOriginal元数据重命名image.jpg。</p> <h3 id="递归重命名">递归重命名</h3> <p>如果要根据元数据递归重命名特定目录中的所有文件,则可以使用-r标志如下:</p> <pre class="brush:php;toolbar:false"> exiftool -r -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - fileName <datetimeriginal><p>此命令将递归重命名指定目录及其子目录中的所有文件。</p> <h3 id="处理重复的文件名">处理重复的文件名</h3> <p>格式的%% -C一部分确保如果有重复的文件名,则将附加复制号以避免覆盖文件。例如,如果两个文件具有相同的日期和时间,则将命名为2024-07-13_12-23-21-1.jpg和2024-07-13_12-23-23-21-2.jpg。</p> <h3 id="重命名特定文件类型">重命名特定文件类型</h3> <p>要重命名特定文件类型,例如JPEG文件,您可以使用-ext选项:</p> <pre class="brush:php;toolbar:false"> Exiftool -r -R-ext Jpg -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - filename <datetimeriginal><p>此命令将仅在指定目录及其子目录中重命名JPEG文件。</p> <h3 id="提取缩略图图像">提取缩略图图像</h3> <pre class="brush:php;toolbar:false">Exiftool -b -B -Thumbnailimage image.jpg> thumbnail.jpg
此命令从image.jpg提取缩略图图像,并将其保存为thumbnail.jpg。
地理图像
exiftool -geotag track.log image.jpg
此命令geotags image.jpg使用track.log的GPS数据。
批处理
如果您有带有GPS数据的CSV文件,则可以批处理图像图:
exiftool -geotag gps_data.csv/path/to/fimage
此命令使用来自gps_data.csv的GPS数据中的/路径/到/图像中的所有图像。
验证元数据
Exiftool -Validate -Warning -Error Image.jpg
此命令验证了image.jpg的元数据并显示任何警告或错误。
将所有元数据提取到文本文件
exiftool -a -g1 -s image.jpg> metadata.txt
此命令从image.jpg提取所有元数据,并将其保存到getadata.txt。
从目录中的所有文件中提取元数据
Exiftool -r -W .txt -common图片
此命令递归从图片目录中的所有文件中提取常见的元数据,并将输出写入具有相同名称的文本文件,但具有.txt扩展名。
使用Exiftool提取GPS坐标
这是您可以使用Exiftool从图像中提取GPS坐标的方法。
基本提取
exiftool -gpslatitude -gpslongitude image.jpg
此命令将显示image.jpg的GPS纬度和经度。
提取所有GPS数据
Exiftool -GPS* image.jpg
此命令从Image.jpg提取所有与GPS相关的元数据。
样本输出:
GPS Latitude Ref : NorthGPS Longitude Ref : EastGPS Altitude Ref : Above Sea LevelGPS Time Stamp : 13:37:16GPS Date Stamp : 2023:05:18GPS Altitude : 93.9 m Above Sea LevelGPS Date/Time : 2023:05:18 13:37:16ZGPS Latitude : 52 deg 40' 11.85" NGPS Longitude : 13 deg 16' 51.10" EGPS Position : 52 deg 40'11.85“ n,13 deg 16'51.10” e
输出到文本文件
将GPS坐标保存到文本文件:
exiftool -gpslatitude -gpslongitude -t image.jpg> gps_coordinates.txt
此命令将image.jpg的gps纬度和经度写入gps_coordinates.txt。
批次提取
从目录中的所有图像中提取GPS坐标并将其保存到文本文件中:
exiftool -fileName -gpslatitude -gpslongitude -t/path/to/Directory> gps_coordinates.txt
此命令将使用指定目录中所有图像的文件名和GPS坐标创建一个选项卡 - 删除的文件gps_coordinates.txt。
小数度输出
如果您希望以十进制程度为单位的坐标,请添加-n选项:
exiftool -gpslatitude -gpslongitude -n image.jpg
样本输出:
GPS纬度:52.6699589722222GPS经度:13.280862
该命令以小数度输出GPS坐标。
Exiftool命令作弊表
1。阅读元数据
基本阅读:
Exiftool Image.jpg
提取特定的元数据标签:
exiftool -t -tricedate -ofture -shutterspeed -iso image.jpg
将所有元数据提取到文本文件:
exiftool -a -g1 -s image.jpg> metadata.txt
从目录中的所有文件中提取元数据:
Exiftool -r -W .txt -common图片
2。写元数据
添加或修改元数据标签:
exiftool -tagname =“新值”文件名
批处理处理(对目录中的所有文件修改元数据):
Exiftool -Artist =“ John Doe” *.jpg
递归批处理处理:
Exiftool -r -Artist =“ John Doe”/path/to/directory
3。复制元数据
将元数据从一个文件复制到另一个文件:
exiftool -tagsfromfile source.jpg target.jpg
将元数据从一个文件复制到多个文件:
exiftool -tagsfromfile source.jpg -ext jpg/path/to/directory
4。去除元数据
删除所有元数据:
Exiftool -all = image.jpg
删除特定的元数据标签:
exiftool -tagname =文件名
5。重命名文件
根据所示日期重命名文件:
Exiftool -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - fileName <datetimeriginal><p><strong>递归重命名:</strong></p> <pre class="brush:php;toolbar:false"> exiftool -r -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - filename <datetimeriginal><p><strong>重命名特定文件类型:</strong></p> <pre class="brush:php;toolbar:false"> Exiftool -r -R-ext Jpg -d“%y-%m-%d_%h-%m-%s %% - c。%% e” - filename <datetimeriginal><h3 id="地理标记"> 6。地理标记</h3> <p><strong>基本地理标记:</strong></p> <pre class="brush:php;toolbar:false"> exiftool -geotag track.log image.jpg
批处理:
exiftool -geotag gps_data.csv/path/to/fimage
7。提取GPS坐标
基本提取:
exiftool -gpslatitude -gpslongitude image.jpg
提取所有GPS数据:
Exiftool -GPS* image.jpg
输出到文本文件:
exiftool -gpslatitude -gpslongitude -t image.jpg> gps_coordinates.txt
批次提取:
exiftool -fileName -gpslatitude -gpslongitude -t/path/to/Directory> gps_coordinates.txt
小数点的输出:
exiftool -gpslatitude -gpslongitude -n image.jpg
8。列表可用标签
查看可用标签:
Exiftool -list
9。验证元数据
验证元数据:
Exiftool -Validate -Warning -Error Image.jpg
10。提取缩略图图像
提取缩略图:
Exiftool -b -B -Thumbnailimage image.jpg> thumbnail.jpg
EXIF和XMP元数据之间的差异
EXIF和XMP都是数字成像中使用的元数据标准,但它们具有不同的目的并且具有不同的特征。
Exif元数据
- 来源:由日本电子工业发展协会(JEIDA)开发,用于数码相机。
- 内容:主要包含有关图像的技术信息,例如相机设置(光圈,快门速度,ISO),拍摄照片的日期和时间,有时甚至是GPS坐标。
- 格式:二进制格式直接嵌入图像文件(JPEG,TIFF等)。
- 用法:由数码相机和图像查看/编辑软件得到广泛支持。它主要用于存储与摄像机相关的信息。
XMP元数据
- 来源:由Adobe Systems开发为元数据的开放标准。
- 内容:可以存储广泛的信息,包括技术,描述性和行政元数据。这包括编辑历史记录,关键字,作者信息等。
- 格式:基于XML的格式,使其更加灵活和扩展。 XMP元数据可以嵌入到文件中,也可以存储在单独的边防文件中。
- 用法:在专业照片编辑软件(如Adobe Photoshop和Lightroom)中广泛使用,用于管理和保存不同的文件格式和工作流程的元数据。
关键差异
- 目的: EXIF主要用于特定于摄像机的信息,而XMP更广泛,可以存储更广泛的元数据。
- 格式: EXIF是二进制的,并嵌入在图像文件中,而XMP基于XML,可以分别嵌入或存储。
- 灵活性: XMP更加灵活,可以轻松扩展到包括自定义元数据字段,而EXIF则更加刚性和标准化。
EXIF和XMP元数据对于数字成像的不同方面都很重要。 EXIF对于理解如何捕获图像的技术细节很有用,而XMP在整个编辑和发布过程中提供了一种更全面,更灵活的方法来管理和保存元数据。
结论
现在,您了解所有有关Exiftool的信息! Exiftool是一个有力的工具,对于想要在数字文件中理解和管理元数据的任何人。这对于摄影师,摄像师以及任何想保持其数字文件井井有条的人可能特别有用。
资源:
- Exiftool网站
相关阅读:
- 如何在Linux上查看图像元数据
以上是如何使用Linux中的Exiftool管理图像元数据的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux最适合用作服务器管理、嵌入式系统和桌面环境。1)在服务器管理中,Linux用于托管网站、数据库和应用程序,提供稳定性和可靠性。2)在嵌入式系统中,Linux因其灵活性和稳定性被广泛应用于智能家居和汽车电子系统。3)在桌面环境中,Linux提供了丰富的应用和高效的性能。

Linux的五个基本组件是:1.内核,管理硬件资源;2.系统库,提供函数和服务;3.Shell,用户与系统交互的接口;4.文件系统,存储和组织数据;5.应用程序,利用系统资源实现功能。

Linux在服务器、嵌入式系统和桌面环境中的应用广泛。1)在服务器领域,Linux因其稳定性和安全性成为托管网站、数据库和应用的理想选择。2)在嵌入式系统中,Linux因其高度定制性和高效性而受欢迎。3)在桌面环境中,Linux提供了多种桌面环境,满足不同用户需求。

Linux基础学习从零开始的方法包括:1.了解文件系统和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.学习文件操作,如创建和编辑文件,4.探索高级用法如管道和grep命令,5.掌握调试技巧和性能优化,6.通过实践和探索不断提升技能。

Linux设备是运行Linux操作系统的硬件设备,包括服务器、个人电脑、智能手机和嵌入式系统。它们利用Linux的强大功能执行各种任务,如网站托管和大数据分析。

Linux的缺点包括用户体验、软件兼容性、硬件支持和学习曲线。1.用户体验不如Windows或macOS友好,依赖命令行界面。2.软件兼容性不如其他系统,缺乏许多商业软件的原生版本。3.硬件支持不如Windows全面,可能需要手动编译驱动程序。4.学习曲线较陡峭,掌握命令行操作需要时间和耐心。

互联网运行不依赖单一操作系统,但Linux在其中扮演重要角色。Linux广泛应用于服务器和网络设备,因其稳定性、安全性和可扩展性受欢迎。

Linux操作系统的核心是其命令行界面,通过命令行可以执行各种操作。1.文件和目录操作使用ls、cd、mkdir、rm等命令管理文件和目录。2.用户和权限管理通过useradd、passwd、chmod等命令确保系统安全和资源分配。3.进程管理使用ps、kill等命令监控和控制系统进程。4.网络操作包括ping、ifconfig、ssh等命令配置和管理网络连接。5.系统监控和维护通过top、df、du等命令了解系统运行状态和资源使用情况。
