FTPサイトにアップロードすると、元のファイルの作成日が失われたようで、代わりにアップロード日を取得します。ただし、ファイル内のExifデータは正しいです。作成日をExif日付から一括変更するツールはありますか?
EXIF処理ツール exiv2
には、このための組み込みオプションがあります。
exiv2 -T rename image.jpg
最後のファイル変更時刻mtime
を、EXIFメタデータに格納されている日付に設定します。
あなたは作成時間の使用を求めました-しかし、それはUnixライクなシステムでは使用されていません-そしてそれには十分な理由があります: https://unix.stackexchange.com/questions/27297/why-doesnt-nix -keep-track-of-file-creation-time
Create timeを呼び出す時間は実際には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
逆の処理を行います。
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
'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
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ファイルが検索され、タイムスタンプが更新されます。
それらのファイルにその日付に基づく名前を付けたい場合(これは便利になる傾向があります)、done
行の前にmv -i $PIC $(dirname $PIC)/$DATE.jpg
も追加します。
jhead
コマンドを使用して作成することもできます:
$ jhead -ft file.jpg