Я пытаюсь записать хэши в часть метаданных моих файлов изображений.На форуме Exiftool я видел это
exiftool FILE -rawimagedigest=`exiftool FILE -all= -o - | md5`
Однако я не хотел бы запускать его вручную для каждого файла, и я предпочитаю SHA.
Я пробовал это
find . -name "*" -exec sh -c '
md5hash=$(exiftool "$1" -all= -m -o - | md5)
sha256hash=$(exiftool "$1" -all= -m -o - | shasum -a 256)
exiftool -overwrite_original "$1" -FileImageMd5=$md5hash;
exiftool -overwrite_original "$1" -FileImageSha256=$sha256hash
' _ {} \;
Используя файл примера Я создал конфигурацию, позволяющую писать в FileImageMd5 и FileImageSha256.Тем не менее, скрипт работает только без строки
exiftool -overwrite_original "$1" -FileImageSha256=$sha256hash
Если я в конце подставляю переменную в $ md5hash, она запускается, как и ожидалось.
Файл конфигурации называется .ExifTool_config и помещается в$ HOME.Он состоит из следующих
%Image::ExifTool::UserDefined = (
'Image::ExifTool::XMP::Main' => {
rlp => {
SubDirectory => {
TagTable => 'Image::ExifTool::UserDefined::rlp',
},
},
},
);
%Image::ExifTool::UserDefined::rlp = (
GROUPS => { 0 => 'XMP', 1 => 'XMP-rlp', 2 => 'Image' },
NAMESPACE => { 'rlp' => 'http://ns.ladekjaer.org/rlp/1.0/' },
WRITABLE => 'string',
FileUniqueId => { Writable => 'lang-alt' },
FileImageSha256 => { Writable => 'lang-alt' },
FileImageMd5 => { Writable => 'lang-alt' },
);
1; #end