您可能在搜索圖像恢復軟件時遇到過 ExifTool。 好吧,ExifTool 的功能遠不止這些。 它是一個開源程序,用於讀取、修改和操作圖像、視頻、音頻和 PDF 元數據。 元數據是添加到多媒體文件中的附加數據。 為了 example,照片的元數據是附加數據,如設備名稱、圖像分辨率、圖像拍攝位置、拍攝和修改日期等。
ExifTool 支持多種元數據格式,包括 EXIF、GPS、XMP、GeoTIFF、Photoshop IRB、ID3、FlashPix。 您的相機寫入 EXIF(可交換圖像文件格式),我們將在本文中重點介紹圖像,但請注意 ExifTool 可用於修改任何文件的元數據。 此外,如果您需要快速安全地複制、移動、重命名、提取預覽或一次修改多個圖像,ExifTool 正是您所需要的。
到本文結束時,我們將知道如何在 Ubuntu / CentOS 上安裝 ExifTool 並操作文件的元數據。 我將在本文中使用 CR2(佳能原始文件)格式,這完全沒問題。 修改本文中使用的命令的必需部分以使您的工作。
安裝 ExifTool
在本節中,我們將在 Ubuntu 和其他 Linux 發行版上安裝 ExifTool
在 Ubuntu 上
您可以使用 apt 實用程序在 Ubuntu 上安裝 ExifTool。
# sudo apt install libimage-exiftool-perl
從源頭
您可以在任何 Linux 發行版(包括 CentOS)上從源代碼編譯和安裝 ExifTool
$ wget https://netix.dl.sourceforge.net/project/exiftool/Image-ExifTool-10.61.tar.gz
$ tar xvf Image-ExifTool-10.61.tar.gz
$ cd Image-ExifTool-10.61/
您可以通過運行來運行 ExifTool ./exiftool
在 ExifTool 目錄中,或者如果要在系統範圍內安裝它,請繼續下一步。 在編譯之前,您必須在 Linux 機器上安裝 Perl。
# perl Makefile.PL
# make
# make test
# make install
您現在可以通過鍵入在終端中的任何位置運行 ExifTool exiftool
.
將 ExifTool 與元數據一起使用
以下是您可以與 ExifTool 一起使用的最常用命令:
顯示與圖像關聯的所有元數據
$ exiftool IMG.CR2
ExifTool Version Number : 10.61
File Name : IMG.CR2
Directory : .
File Size : 16 MB
File Modification Date/Time : 2017:09:24 12:15:41+00:00
File Access Date/Time : 2017:09:24 12:16:16+00:00
File Inode Change Date/Time : 2017:09:24 12:16:10+00:00
File Permissions : rw-rw-r--
File Type : CR2
File Type Extension : cr2
MIME Type : image/x-canon-cr2
在這 example,我們針對名為“IMG.CR2”的圖像運行 exiftool,我們得到了友好的元數據,範圍從文件修改日期、圖像寬度和高度、顏色分量到百萬像素。
如果您想要相同的元數據,但不使用像“修改日期”這樣的可讀元數據名稱,而是想要在實際 ExifTool 命令中使用時需要使用的名稱,請使用 -s
選項。 因此,您看到的不是“文件名”,而是“文件名”等。
$ exiftool -s IMG.CR2
ExifToolVersion : 10.61
FileName : IMG.CR2
Directory : .
FileSize : 16 MB
FileModifyDate : 2017:09:24 12:15:41+00:00
FileAccessDate : 2017:09:24 12:16:16+00:00
FileInodeChangeDate : 2017:09:24 12:16:10+00:00
FilePermissions : rw-rw-r--
FileType : CR2
FileTypeExtension : cr2
MIMEType : image/x-canon-cr2
查看文件的特定元數據屬性
您可以在圖像名稱之前指定元數據屬性名稱,而不是使用上一個命令查看所有元數據,以查看確切數據。 在這 example,我們將提取圖像的 RedBalance、FileType、ShootingMode 和 HDR 數據。
$ exiftool -RedBalance IMG_9110.CR2
Red Balance : 1.495117
$ exiftool -FileType IMG_9110.CR2
File Type : CR2
$ exiftool -ShootingMode IMG_9110.CR2
Shooting Mode : Manual
$ exiftool -HDR IMG_9110.CR2
HDR : Off
提取嵌入在原始文件中的預覽圖像
以防萬一您的圖像損壞,您可以嘗試使用以下命令提取預覽圖像甚至縮略圖:
exiftool -b -PreviewImage IMG.CR2 > extract.jpg
這 -b
option 告訴 exiftool 以二進制格式輸出數據,extract.jpg 是創建的新圖像的目標文件。 你可以更換 -PreviewImage
和 -ThumbnailImage
如果你想要縮略圖。
按年和月將圖像文件移動或複製到文件夾中
如果您有多個圖像想要按年、月甚至天移動到新目錄中,您可以使用 exiftool 輕鬆完成此操作 example 以下:
$ exiftool -o '-Directory<CreateDate' -d ./NewImages/%y/%y%m -r ./OldImages
4 directories scanned
1 directories created
9 image files updated
4 image files unchanged
這 example 上面根據年份和月份將舊圖像複製到新文件夾中。 各種參數解釋如下。
-o
複製所有文件並保留源文件。 刪除此選項將移動它們而不是複制它們
-Directory<CreateDate
使用圖像創建日期將圖像移動到新的目標文件夾
./NewImages/%y/%y%m
是要復製到的圖像文件夾的相對路徑,子文件夾以年份命名,然後以年份命名。
-r
在源文件夾及其子文件夾上遞歸重複該過程。
./OldImages
是整個操作開始並保留原始圖像的源文件夾。
我們將使用 tree
命令查看我們操作的圖像的新排列的文件夾結構。 我們可以看到圖像被移動到一個新文件夾中,其中包含 year 和 yearmonth 子文件夾。
$ tree
.
└── 17
└── 1708
├── IMG_9110.CR2
├── IMG_9111.CR2
├── IMG_9112.CR2
├── IMG_9114.CR2
├── IMG_9115.CR2
├── IMG_9116.CR2
├── IMG_9117.CR2
└── IMG_9118.CR2
2 directories, 8 files
根據創建日期重命名圖像文件
以下命令根據元數據創建日期和時間重命名當前文件夾及其子文件夾中的所有“CR2”(佳能)原始文件。
exiftool '-filename<CreateDate' -d %y%m%d_%H%M%S%%-c.%%e -r -ext CR2 ./RenamedImages
-filename<CreateDate
告訴 exiftool 使用它們的創建數據和時間重命名圖像文件
-d
表示設置數據/時間值的格式
%y%m%d_%H%M%S%%-c.%%le
用於指定重命名文件時使用的格式:
%y%m%d_ 表示新文件名的第一部分將是創建年月日的最後兩位數字。 這 _
在文件名的第二部分之前放置一個下劃線。 %H%M%S
添加創建時間的小時、分鐘和秒。
%%-c
如果在重命名過程之前多個圖像具有名稱,則添加增量副本編號。 -c
只是在副本號前加一個破折號。
.%%e
保留原始文件擴展名。 如果您希望將擴展名設為小寫或大寫,請使用 .%%le
或者 .%%ue
分別。
-ext CR2
告訴 exiftool 重命名僅帶有 CR2 擴展名的文件。 要重命名源文件夾中的所有圖像文件,請不要指定任何擴展名。
-r
在源文件夾及其子文件夾上遞歸重複該過程。
./RenamedImages
是包含要重命名的所有圖像的文件夾的相對路徑。
我們將使用 tree
再次命令比較我們的原始文件名 舊圖像 給新人 重命名圖像.
.
├── 圖片
I └── OldImages
│ ├── IMG_9110.CR2
│ ├── IMG_9111.CR2
│ ├── IMG_9112.CR2
│ ├── IMG_9114.CR2
│ ├── IMG_9115.CR2
│ ├── IMG_9116.CR2
│ ├── IMG_9117.CR2
│ └── IMG_9118.CR2
└── 重命名圖片
├── 170827_184715.CR2
├── 170827_184726.CR2
├── 170827_184736.CR2
├── 170827_184800.CR2
├── 170827_184821.CR2
├── 170827_184848.CR2
├── 170827_184853.CR2
└── 170827_184855.CR2
ExifTool 是一個非常強大的文件元數據操作工具。 有幾個應用程序,正如預期的那樣,我們無法添加所有選項。 我們錯過了什麼? 現在就在評論部分告訴我們。