在 Linux 终端中查找 jpg 文件的序列号

在 Linux 终端中查找 jpg 文件的序列号

我在解码 jpg 文件时遇到了问题,无法通过 ssh 从 Linux 终端找到它的序列号。我的文件和我执行的命令的详细信息 M5KDAN44

grep "serial number" M5KDAN44

我的错误序列号是一个值,而不是一个要查找的字符串,请帮忙

答案1

更改目录到目标目录

cd /path/to/dir/with/files

如果扩展名被删除,则查找 jpg (JPEG) 文件。

OIFS="$IFS";IFS=$'\n';for f in `find ./ -type f -exec file --mime-type {} \;|grep image/jpeg|cut -d ":" -f 1`;do echo "$f";done;IFS="$OIFS"

用于 EXIF 数据中的相机序列号。
命令是:

exiftool <file-name> | grep '^Serial Number'  

例子

exiftool IMG_0277 | grep '^Serial Number'
Serial Number                   : 078073094979

两个命令结合起来查找 jpg(JPEG)文件并获取序列号。

OIFS="$IFS";IFS=$'\n';for f in `find ./ -type f -exec file --mime-type {} \;|grep image/jpeg | cut -d ":" -f 1`;do echo "$f" `file --mime-type "$f"|cut -d ":" -f 2` `exiftool "$f"|grep '^Serial'`;done;IFS="$OIFS"

例子:

OIFS="$IFS";IFS=$'\n';for f in `find ./ -type f -exec file --mime-type {} \;|grep image/jpeg | cut -d ":" -f 1`;do echo "$f" `file --mime-type "$f"|cut -d ":" -f 2` `exiftool "$f"|grep '^Serial'`;done;IFS="$OIFS"
./IMG_9862 07.JPG  image/jpeg Serial Number                   : 078073094979
./008  image/jpeg
./IMG_0277 06  image/jpeg Serial Number                   : 078073094979
./new folder/IMG_0277 06  image/jpeg Serial Number                   : 078073094979
./new folder/008 03  image/jpeg
./DSC04592 05  image/jpeg
./008 03  image/jpeg

注意:并非所有 jpg 文件的 EXIF 数据中都有“序列号”。
大多数较新的 DSLR 相机都会将相机的序列号写入 EXIF 数据中

相关内容