also das Skript ist fertig. Es wird über die Benutzerdefinierten Aktionen von thunar aufgerufen
Ziel:
Bilder werden in eine eigens festgelegte Dateistruktur kopiert. Diese Dateistruktur kann natürlich abgeändert werden. Mithilfe von thunar und der Definition von benutzerdefinierten Aktionen kann man ohne ein zusätzliches Programm (z.B. F-Spot) die Bilder von der Digitalkamera in die eigene Datenstruktur einordnen. Es wird das Herstellungsdatum der Bilder für die Gliederung verwendet.
Es gibt zwei Varianten:
1. Alle Bilder inklusive der Bilder in Unterordnern werden eingeordnet
Thunar - Benutzerdefinierte Aktionen
xfce4-terminal -x ~/bin/allebilderkoppieren.sh
Skriptfile:
#!/bin/bash
my_picture_dir=/home/andreas/Bilder
# Lies die Beschreibung in Variable $desc
echo Bitte Beschreibung der Dateien eingeben:
read desc
# Am Ende des Dateinamens kommt ein Index, damit die Dateie mit Sicherheit eindeutig ist und nicht überschrieben wird
counter=0
# Für allen Dateien aus dem Verzeichniss und den unterverzeichnissen wird das Script ausgewählt
find . -iname \*.jpg | while read datei
do
# Der Index wird um 1 erhöht, es wird mit 1 begonnen
counter=$((${counter}+1))
jhead -ft "$datei" # Das Änderungsdatum der Datei wird auf das Herstellungsdatum des Bildes zurückgesetzt
jhead -autorot "$datei" # fals ein automatische Drehen eingestellt wurde, werden die Bilder gedreht
fdate=$(ls -al "$datei" | awk {'printf $6'}) # Es wird aus der Datei das Anderungsdatum ausgelesen
ftime=$(ls -al "$datei" | awk {'printf $7'}) # Die Änderungszeit wird ausgegeben
fyear=$(echo ${fdate:0:4})
fmon=$(echo ${fdate:5:2})
fday=$(echo ${fdate:8:2})
ftimeh=$(echo ${ftime:0:2})
ftimem=$(echo ${ftime:3:2})
mkdir -p $my_picture_dir/$fyear/$fmon/$fdate\ "$desc"
cp "$datei" $my_picture_dir/$fyear/$fmon/$fdate\ "$desc"/$fdate\ $ftimeh.$ftimem\ "$desc"" $counter".jpg
done
2. Eine in thunar definierte Auswahl an Bildern wird eingeordnet
Thunar - Benutzerdefinierte Aktionen
xfce4-terminal -x ~/bin/auswahlbilderkoppieren.sh %N
Skriptfile:
#!/bin/bash
my_picture_dir=/home/andreas/Bilder
# Lies die Beschreibung in Variable $desc
echo Bitte Beschreibung der Dateien eingeben:
read desc
# Am Ende des Dateinamens kommt ein Index, damit die Dateie mit Sicherheit eindeutig ist und nicht überschrieben wird
counter=0
# Für allen Dateien aus dem Verzeichniss und den unterverzeichnissen wird das Script ausgewählt
for (( i = 1; i <= $#; i++ ))
#find . -iname \*.jpg | while read datei
#for file in $* ; do
do
eval datei=\$$i
counter=$((${counter}+1)) # Der Index wird um 1 erhöht, es wird mit 1 begonnen
echo "datei $datei"
jhead -ft "$datei" # Das Änderungsdatum der Datei wird auf das Herstellungsdatum des Bildes zurückgesetzt
jhead -autorot "$datei" # fals ein automatische Drehen eingestellt wurde, werden die Bilder gedreht
fdate=$(ls -al "$datei" | awk {'printf $6'}) # Es wird aus der Datei das Anderungsdatum ausgelesen
ftime=$(ls -al "$datei" | awk {'printf $7'}) # Die Änderungszeit wird ausgegeben
fyear=$(echo ${fdate:0:4})
fmon=$(echo ${fdate:5:2})
Month[1]="01_Jänner" # Der Unterordner bei Monat wird nicht nur mit der Nummer sondern auch mit bsp. 01_Jänner bezeichnet
Month[2]="02_Februar" # _ bitte lassen, da Lehrzeichen nicht gehen.
Month[3]="03_März"
Month[4]="04_April"
Month[5]="05_Mai"
Month[6]="06_Juni"
Month[7]="07_Juli"
Month[8]="08_August"
Month[9]="09_September"
Month[10]="10_Oktober"
Month[11]="11_November"
Month[12]="12_Dezember"
fmon2=${Month[fmon]}
fday=$(echo ${fdate:8:2})
ftimeh=$(echo ${ftime:0:2})
ftimem=$(echo ${ftime:3:2})
mkdir -p $my_picture_dir/$fyear/$fmon2/$fdate\ "$desc"
cp "$datei" $my_picture_dir/$fyear/$fmon2/$fdate\ "$desc"/$fdate\ $ftimeh.$ftimem\ "$desc"" $counter".jpg
done
thunar "$my_picture_dir"/"$fyear"/"$fmon2"/"$fdate"\ "$desc"/
viel Spass mit dem Skript. Falls was nicht geht. Bitte melden. Danke