FTP 사이트에 업로드할 때 원본 파일 생성 날짜가 없어진 것 같은데 업로드 날짜가 나오네요. 그러나 파일의 Exif 데이터는 정확합니다. Exif 날짜 생성일을 일괄 변경할 수 있는 도구가 있나요?
답변1
EXIF 처리 도구exiv2
이에 대한 내장 옵션이 있습니다:
exiv2 -T rename image.jpg
마지막 파일 수정 시간을 mtime
EXIF 메타데이터에 저장된 날짜로 설정합니다.
생성 시간을 사용하도록 요청했지만 이는 Unix 계열 시스템에서는 사용되지 않습니다.정당한 이유로.
나는 당신이 창조 시간이라고 부르는 시간이 실제로 그 시간이라고 확신합니다 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
반대 작업을 수행하려면 옵션을 참조하세요.
답변2
"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
jhead
다음 명령을 사용할 수도 있습니다 .
$ jhead -ft file.jpg
~에서매뉴얼 페이지:
-ft
파일의 시스템 타임스탬프를 Exif 헤더에 저장된 타임스탬프로 설정합니다.
-dsft
Exif 타임스탬프를 파일의 타임스탬프로 설정합니다. 기존 Exif 헤더가 필요합니다.-mkexif
필요한 경우 옵션을 사용하여 생성하세요.
답변4
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