例:

例:

FTPサイトにアップロードすると、元のファイル作成日がなくなったようですが、アップロード日が出ます。ただし、ファイルのExifデータは正確です。 Exif日付の作成日を一括変更するためのツールはありますか?

答え1

EXIF処理ツールexiv2これには組み込みオプションがあります。

exiv2 -T rename image.jpg

最後のファイル変更時刻を mtimeEXIFメタデータに保存された日付に設定します。

作成時間を使用するように要求しましたが、これは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

関連情報