Jaa-a. Enpäs osaa sanoa onko missään valmiina moista ominaisuutta, mutta shelliskriptoillahan moinen onnistuu näppärästi?
Tein sinulle jonkinlaisen pohjan, en kerta tiedä onko sinulla aikaisempaa kokemusta skriptien kirjoittamisesta.
Tämä skripta siis tekee lyhyesti tämän.
1) Tekee kansioon "temp" nimisen hakemiston
2) Siirtyy sinne
3) Lataa kamerasta kaikki kuvat siihen temp-hakemistoon
4) Tutkii jokaisen kuvan päivämäärän ja luo kansiot muotoa YYYY/MM/DD/
5) Siirtää kuvan siihen kansioon
Eli siis, step-by-step ohje (toivottavasti on tarpeeksi selkeä):
1) Tarvittavat ohjelmat "gphoto2" sekä "exiv2". gphoto2 on mitä skriptini käyttää siirtäessä kuvat kameralta tietokoneelle. exiv2 on ohjelma jolla saadaan valokuvasta tarkistettua päiväys sekä vuosi sekä kuukausi, jonka mukaan kansiot tehdään.
Jos ei ole asennettu, käynnistä Pääte (Apuohjelmat -> Pääte). "sudo aptitude install gphoto2 exiv2" tai vaihtoehtoisesti asenna graafisilla työkaluilla jos olet niitä tottunut käyttämään.
2) Avaa tekstieditori (vaikka Gnomen oma gedit) ja kirjoita sinne tämä (copy-paste)
#!/bin/bash
# Luodaan hakemisto mihin ladataan kuvat
if [ -e "temp" ]
then
cd temp
else
mkdir temp
cd temp
fi
# Ladataan KAIKKI kuvat
gphoto2 --auto-detect --get-all-files
# Katsotaan exiv2-ohjelmalla jokaisen kuvan päiväys
for i in *.JPG; do
picyear=`exiv2 $i | grep "timestamp" | cut -d ":" -f 2`
picmonth=`exiv2 $i | grep "timestamp" | cut -d ":" -f 3`
picday=`exiv2 $i | grep "timestamp" | cut -b 27-28`
echo "Kuvatiedosto: $i"
echo "-------------"
echo "Vuosi: $picyear"
echo "Kuukausi: $picmonth"
echo "Päivä: $picday"
kansio="$picyear/$picmonth/$picday"
echo "Kansio johon siirretään: $kansio"
# Luodaan tarvittaessa kansio YYYY/MM/DD
if [ -e $kansio ]
then
echo "Siirretään kuva $i kansioon $kansio"
# Siirretään tiedosto oikeaan kansioon
mv $i $kansio
else
echo "Luodaan kansio $kansio"
# Luodaan kansio, -p luo kansion alakansioineen
mkdir -p $kansio
echo "Siirretään kuva $i kansioon $kansio"
# Siirretään tiedosto oikeaan kansioon
mv $i $kansio
fi
echo
done
3) Tallenna tiedosto vaikka kotikansioosi jollain nimellä, vaikka "lataa.sh" kuten itselläni.
4) Anna ko. skriptille suoritusoikeudet. Eli käynnistä "Pääte" (Apuohjelmista löytyy) ja kirjoita "chmod 755 lataa.sh" (olettaen että tallensit ko. tiedoston nimelle lataa.sh kotikansiosi juurihakemistoon
5) Käynnistä skripti komennolla "./lataa.sh"
6) gphoto2 ohjelma koettaa nyt tunnistaa kamerasi (--auto-detect parametri skriptissä) ja aloittaa siirtämään KAIKKI kuvat.
7) Kun siirto on valmis, skripti käy kaikki kuvat läpi ja tekee päiväyksen mukaiset kansiot ja siirtää kuvan sinne. Päiväys katsotaan valokuvan EXIF-tiedoista ohjelmalla exiv2.
Toivottavasti sait selvää mitä tässä neuvoin
Mutta toki jos ei selvinnyt, kysy toki vapaasti niin katsellaan saako toimimaan.
Ainakin omalla koneellani toimi mainiosti.