memo.xight.org

日々のメモ

ファイルの作成日と更新日を同じ日にする

Summary

ファイルの作成日と更新日を同じ日にしたい。
スクリプトでまとめて処理する。

#!/bin/bash

function usage {
	cat << __USAGE__
$(basename ${0}) is a tool for update modification date to creation date.

Usage: 
	$(basename ${0}) [FILE]...
__USAGE__
}

if [ $# -gt 0 ]; then
	for i in `seq 1 $#`
	do
		CREATED=`GetFileInfo -d "$1"`
		CREATED_DATETIME=`echo ${CREATED} | sed -e 's!^\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\) \([0-9]\{2\}\):\([0-9]\{2\}\):\([0-9]\{2\}\)!\3-\1-\2 \4:\5:\6!'`
		echo $1 ":" $CREATED, $CREATED_DATETIME
		SetFile -m "$CREATED" "$1"
		shift
	done
else
	usage
fi


Reference

職業としてのプログラミング - 2017-03-21 - googleフォトアップロード用に動画ファイルの変更日を作成日にあわせる
http://proger.blog10.fc2.com/blog-entry-136.html

撮影日、作成日でファイル名を更新する

Summary

exiftool を利用してExifの情報を元に、ファイル名を更新したい。

撮影日 (Content created) に基づきリネームする

exiftool "-filename<DateTimeOriginal" -d %Y-%m-%d-%H-%M-%S%%-c.%%e *.jpg *.JPG


ファイルの作成日に基づきリネームする

GetFileInfoの日付フォーマットが mm/dd/yyyy hh:mm:ss なので、yyyy-mm-dd-hh-mm-ss とする。

#!/bin/bash

function usage {
	cat << __USAGE__
$(basename ${0}) is a tool for rename based on creation date.

Usage: 
	$(basename ${0}) [FILE]...
__USAGE__
}

if [ $# -gt 0 ]; then
	for i in `seq 1 $#`
	do
		CREATED=`GetFileInfo -d "$1"`
		CREATED_FILENAME=`echo ${CREATED} | sed -e 's!^\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\) \([0-9]\{2\}\):\([0-9]\{2\}\):\([0-9]\{2\}\)!\3-\1-\2-\4-\5-\6!'`
		echo $1 "->" ${CREATED_FILENAME}.jpg
		mv "$1" ${CREATED_FILENAME}.jpg
		shift
	done
else
	usage
fi


Reference

GitHub - exiftool/exiftool - ExifTool meta information reader/writer
https://github.com/exiftool/exiftool

ExifTool by Phil Harvey
https://exiftool.org/

Qiita - @nekogesaku - 2018-03-18 - exiftoolで画像のEXIF情報を変更する
https://qiita.com/nekogesaku/items/bc4df484b1de2ac6cda0

職業としてのプログラミング - 2017-03-21 - googleフォトアップロード用に動画ファイルの変更日を作成日にあわせる
http://proger.blog10.fc2.com/blog-entry-136.html