jhead (Fotos nach Aufnahmedatum sortieren)

Mit jhaed können Dateinamen auf Basis von EXIF-Informationen verändert werden.

Hier ein Beispielscript, das alle Bilder eines Ordners nach dem Aufnahmedatum mit aufsteigendem Zähler sortiert:

#! /bin/bash

function err_text {
while [ $# -gt 0 ] ; do
  echo "$1" 1>&2 
  shift
done
echo "`basename $0` [options] folder [out-folder]" 1>&2
echo 1>&2
echo "folder     - Ordner, in dem sich die zu sortierenden Fotos befinden" 1>&2
echo "out-folder - optionaler Ausgabeordner" 1>&2
echo 1>&2
echo "Optionen:" 1>&2
echo "-f    filename         Dateiname, der an den Zähler angehängt werden soll" 1>&2
echo "-n    number of digit  Anzahl der Stellen des Zählers" 1>&2
echo "-e    extended digit   an den Zähler wird eine zusäzliche 0 angehängt" 1>&2
exit 1
}

# Sortieren und überprüfen der Parameter (":" bedeutet, dass der vorangestellte Parameter
# zusätzlich einen Wert benötigt)
#echo --- $@
set -- `getopt "f:n:e" "$@"` || err_text

# Startparameter setzen
basedir="$PWD"
filename="Bild"
nod=3
ed=""

# Parameter in Endlosschleife abfragen
# Bei Parametern mit Übergabeparameter muss stets ein "shift" ausgeführt werden!
while : ; do
  case "$1" in
    -f) shift; filename="$1";;
    -n) shift; nod=$1;;
    -e) ed="0";;
    --) break;;
  esac
  shift
  [ $# -eq 0 ] && break # Fehler in den angegebenen Parametern
done
shift
[ $# -lt 1 ] && err_text # kein Dateiname wurde übergeben

folder=`pwd`/$1

# Dateien abarbeiten
if [ -d "$folder" ]; then
  if [ "$2" == "" ]; then
    cd "$folder"
  else
    mkdirx "$2"
    cd "$folder"
    cp *.* "$2"
    cd "$2"
  fi
  jhead -exonly -n%Y%m%d_%H%M%S *.JPG > /dev/null 2>&1
  jhead -exonly -n%Y%m%d_%H%M%S *.jpg > /dev/null 2>&1
  jhead -exonly -n%Y%m%d_%H%M%S *.jpeg > /dev/null 2>&1
  jhead -exonly -n%Y%m%d_%H%M%S *.JPEG > /dev/null 2>&1
  jhead -exonly -nf%0${nod}i${ed}_"$filename" *.jpg > /dev/null 2>&1
  pwd
  ls -1 *.jpg
else
  err_text "`basename $0` - Ordner '$folder' existiert nicht"
fi



# http://blog.falco2.de/linux/konsole-linux/konsole-bild-bilder-was-dazu-gehort/
# http://techbase.kde.org/index.php?title=Development/Tutorials/Shell_Scripting_with_KDE_Dialogs_%28de%29