Created
August 5, 2011 06:54
-
-
Save jbman/1127050 to your computer and use it in GitHub Desktop.
Bash file for loading and renaming photos from a digicam
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
### Subroutines ### | |
# Prüft ob Pfad zu Bildern angegeben ist | |
assertCameraPathProvided() { | |
if [ -z "$1" ]; | |
then | |
echo "Pfad zu Bildern auf der Kamera wird als erstes Argument benötigt (z.B. /media/disk/DCIM/100_FUJI)" | |
end; | |
fi | |
} | |
# Prüft ob Kamera angeschlossen | |
assertCameraPathAvailable() { | |
if [ ! -d "$1" ]; | |
then | |
echo "Kamera nicht angeschlossen ($1 nicht gefunden)" | |
end; | |
else | |
echo "Pfad $1 wurde gefunden." | |
fi; | |
} | |
# Keine Eingabe? => Abbrechen | |
endIfInputEmpty() { | |
if [ -z "{$1}" ]; | |
then | |
echo "Keine Eingabe." | |
end; | |
fi | |
} | |
end() { | |
echo "Skript wird nach Tastendruck beendet."; | |
read -n 1 -s | |
exit | |
} | |
openNautilus() { | |
echo "Nach Tastendruck wird der Ordner mit den Bildern wird geöffnet."; | |
read -n 1 -s | |
nautilus "$1" | |
exit | |
} | |
### Main #### | |
assertCameraPathProvided $1; | |
sourcedir=$1 | |
datesuffix=$2 | |
# ZUM TEST: "/home/johannes/Data/Scripts/DCIM/100_FUJI" | |
assertCameraPathAvailable $sourcedir; | |
year=$(date +%Y) | |
basedir="/home/johannes/Bilder/FOTOS/$year" | |
echo "" | |
echo "Bitte Beschreibung für Ordnernamen eingeben:"; | |
while read inputline | |
do | |
description="$inputline" | |
endIfInputEmpty description; | |
datestr=$(date +%Y_%m%d) | |
targetdir="$basedir/$datestr$datesuffix $description" | |
echo "==================================================" | |
echo "Bilder werden verschoben."; | |
echo "Quelle: $sourcedir" | |
echo "Ziel: $targetdir"; | |
echo "--------------------------------------------------" | |
mkdir "$targetdir"; | |
pushd "$sourcedir" >/dev/null; | |
mv -i -v * "$targetdir"; | |
popd >/dev/null; | |
echo "Verschieben der Bilder fertig."; | |
echo | |
echo "Bilder umbenennen nach Aufnahmezeitpunkt"; | |
pushd "$targetdir" >/dev/null; | |
# .JPG umbenennen in .jpg | |
find -name "*.JPG" | while read a; do mv "$a" "${a%%.JPG}.jpg" ; done | |
# Nach Aufnahmezeitpunkt benennen | |
exiv2 rename -F -r %Y_%m%d_%H%M%S *.jpg | |
# .AVI umbenennen in <Modifictaion date>.avi | |
find -name "*.AVI" | while read a; do mv "$a" "`date -r $a +%Y_%m%d_%k%M%S`.avi" ; done | |
popd >/dev/null; | |
echo "==================================================" | |
echo | |
openNautilus "$targetdir"; | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment