Skip to content

Instantly share code, notes, and snippets.

@amano41
Created July 6, 2016 06:27
Show Gist options
  • Save amano41/07951206c5bad03fd30c1895279c8b7d to your computer and use it in GitHub Desktop.
Save amano41/07951206c5bad03fd30c1895279c8b7d to your computer and use it in GitHub Desktop.
Exif の撮影日時をもとに JPEG ファイルをリネームする
#!/bin/bash
# -*- coding: utf-8 -*-
SRC="$1"
DIR=$(dirname "$SRC")
BASE=$(basename "$SRC")
EXT=$(echo "${BASE##*.}" | tr A-Z a-z)
## 撮影日時を取得
DATE=`identify -format '%[exif:DateTimeOriginal]' "$SRC" | sed -e 's/://g' -e 's/ /-/g'`
## 撮影日時がなければデジタルデータの生成日時を代わりに使う
if [ -z "$DATE" ]; then
DATE=`identify -format '%[exif:DateTimeDigitized]' "$SRC" | sed -e 's/://g' -e 's/ /-/g'`
fi
## デジタルデータの生成日時もダメならデータ更新日時
if [ -z "$DATE" ]; then
DATE=`identify -format '%[exif:DateTime]' "$SRC" | sed -e 's/://g' -e 's/ /-/g'`
fi
## Exif から日付の情報が利用できなければタイムスタンプ
if [ -z "$DATE" ]; then
DATE=`stat -c '%y' "$SRC" | cut -d '.' -f 1 | sed -e 's/[-:]//g' | sed -e 's/ /-/g'`
fi
BASE="${DATE}.${EXT}"
DEST="${DIR}/${BASE}"
if [ -e "$DEST" ]; then
echo "\tfile '$DEST' already exists."
echo "\tskipped: $SRC"
else
mv "$SRC" "$DEST"
echo "$SRC ==> $BASE"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment