JPEG EXIF ​​메타 데이터에서 파일 생성 날짜 변경


29

ftp 사이트에 업로드 할 때 원본 파일 생성 날짜가 손실 된 것 같으며 대신 업로드 날짜가 표시됩니다. 그러나 파일의 Exif 데이터가 정확합니다. Exif 날짜에서 작성된 날짜를 일괄 변경하는 도구가 있습니까?


1
가장 도움이되는 답변을 받아들이십시오. 이런 식으로이 질문을 검색하는 다른 사람들은 "답변"으로 표시됩니다. 또한 시간을 보낸 사람에게 보상하는 방법이기도합니다.
Dmitry Grigoryev

답변:


27

EXIF 처리 도구 exiv2에는 다음과 같은 옵션이 내장되어 있습니다.

exiv2 -T rename image.jpg

마지막 파일 수정 시간을 mtimeEXIF 메타 데이터에 저장된 날짜로 설정합니다.

작성 시간을 사용하도록 요청했지만 유닉스 계열 시스템에서는 사용되지 않았으며 그 이유는 다음과 같습니다. https://unix.stackexchange.com/questions/27297/why-doesnt-nix-keep-track 파일 작성 시간

나는 당신이 생성 시간이라고 부르는 시간이 실제로 mtime문제가 없다는 것을 확신합니다 .


보낸 사람 man exiv2:

NAME
        exiv2 - Image metadata manipulation tool

 SYNOPSIS
        exiv2 [options] [action] file ...

 DESCRIPTION
        exiv2 is a program to read and write Exif, IPTC and XMP image metadata and image com‐
        ments. The following image formats are supported:

 [ ... ]

 mv | rename
       Rename files and/or set file timestamps according to the Exif create time‐
       stamp.  Uses  the  value  of  tag  Exif.Photo.DateTimeOriginal  or, if not
       present, Exif.Image.DateTime to determine the timestamp. The filename for‐
       mat can be set with -r fmt, timestamp options are -t and -T.

 [ ... ]

 -T     Only  set  the  file  timestamp according to the Exif create timestamp, do not
        rename the file (overrides -k). This option is only  used  with  the  'rename'
        action.  Note:  On Windows you may have to set the TZ environment variable for
        this option to work correctly.


-t반대 작업을 수행하려면 옵션 을 참조하십시오 .


7

CPAN에서 exiftool을 설치하면 모든 파일이 "all"디렉토리에 있다고 가정하고 다음 스크립트를 실행할 수 있습니다.

#!/bin/sh
for i in all/*; do
    SPEC=`exiftool -t -s -d "%Y-%m-%d %H:%M:%S" -CreateDate "$i"`
    read X DATE <<<${SPEC}
    echo "$i:$DATE"
    touch -d "$DATE" "$i"
done

이 스크립트가 무엇을하고 있는지 설명 할 수 있습니까? 특히exiftool
user5359531

5

'Volker Siegel'에서 언급했듯이 mtime을 의미한다고 가정하면 exiftools 내장 함수를 간단하게 사용합니다 ..

처럼:

 $ exiftool "-DateTimeOriginal>FileModifyDate" test.jpg

"exif 필드"DateTimeOriginal "정보를 가져 와서"test.jpg "파일의 파일 시스템 수정 날짜 / 시간 정보를 설정하는 데 사용합니다.

예:

$ ls -la test.jpg
-rw-r-----@ 1 user  18329968  2432451 14 Out 17:57 test.jpg

$ exiftool -DateTimeOriginal test.jpg
Date/Time Original              : 2015:10:09 13:29:58

$ exiftool "-DateTimeOriginal>FileModifyDate" test.jpg
    1 image files updated

$ ls -la test.jpg
-rw-r-----@ 1 user  18329968  2432451  9 Out 13:29 test.jpg

3

ExifTool은 날짜 / 시간 원본 추출 또는 데이터 EXIF ​​태그 추출을 포함하여 대부분의 EXIF ​​정보를 읽고 조작 할 수 있습니다. 이 정보를 사용하여 파일 이름을 바꾸거나 타임 스탬프를 변경할 수 있습니다. 예를 들면 다음과 같습니다.

find -name '*.jpg' | while read PIC; do
    DATE=$(exiftool -p '$DateTimeOriginal' $PIC |
    sed 's/[: ]//g')
    touch -t $(echo $DATE | sed 's/\(..$\)/\.\1/') $PIC
done

현재 디렉토리에서 모든 JPG 파일을 찾고 타임 스탬프를 업데이트합니다.

해당 파일에 해당 날짜를 기반으로 이름을 지정하려면 (이 기능은 편리함) 줄 mv -i $PIC $(dirname $PIC)/$DATE.jpg앞에 추가 하십시오 done.


3

jhead명령을 사용하여 만들 수도 있습니다 .

$ jhead -ft file.jpg

Jhead 3.0의 경우 옵션은 -dsft입니다. -ft반대입니다.
Tesquin Crydd 12
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.