#!/bin/bash checkcommand() { local result local command="$1" which "$command" 1>/dev/null 2>&1 if [[ $? == 0 ]]; then echo "$command requirement OK" result=1 else echo "$command requirement MISSING" result=0 fi return $result } help() { echo "Usage:" echo " tphoto -h Display help." echo " tphoto Rename jpg files from current directory with Exif datetime." echo " tphoto *.jpg Rename files in parameter with Exif datetime." echo " tphoto -f Rename jpg files from current directory with Exif datetime or file datetime." echo " tphoto -f *.jpg Rename files in parameter with Exif datetime or file datetime." } renameFromDirectoryWithExifOnly() { find . -maxdepth 1 -type f -iname "*.jpg" | while read path do filename=$(basename $path) #echo "$filename" if [[ $(jhead $filename | grep -c Date) == 1 ]]; then #echo "yop $filename" jhead -n%Y%m%d-%H%M%S "$filename" else echo "$filename IGNORED" fi done } renameFromDirectory() { find . -maxdepth 1 -type f -iname "*.jpg" | while read path do filename=$(basename $path) #echo "$filename" jhead -n%Y%m%d-%H%M%S "$filename" done } # main if [[ $# == 0 ]]; then renameFromDirectoryWithExifOnly elif [[ "$1" == "-h" ]]; then help elif [[ "$1" == "-f" && $# == 1 ]]; then renameFromDirectory elif [[ "$1" == "-f" && $# > 1 ]]; then for filename do if [[ "$filename" != "-f" ]]; then #echo "$filename" jhead -n%Y%m%d-%H%M%S "$filename" fi done else for filename do #echo "$filename" if [[ $(jhead $filename | grep -c Date) == 1 ]]; then #echo "yop $filename" jhead -n%Y%m%d-%H%M%S "$filename" else echo "$filename IGNORED" fi done fi