Bugün annemin Nokia 6101 telefonu ile çektiği resimleri bilgisayara aktarmam gerekti. Yalan olmasın, ilk aklıma gelen, biraderimin Windows XP ve Nokia PC Suite kurulu bilgisayarını kullanarak fotoğrafları oraya yüklemekti. Bilgisayarın başında yarım saat kadar debelendikten sonra pes ettim ve Debian Sarge yüklü sunucumun yolunu tuttum (dizüstü bilgisayarımda kızılötesi desteğini derlememiştim).
Hemen USB IrDA aletini yerine taktım. Ardından root olarak şu komutları verdim:
# IrDA stack'i bu kızılötesi aleti kullanmaya ayarla deepthought:~# irattach irda0 -s # Bir de kontrol et, bakalım cep telefonunu görüyor mu... deepthought:~# irdadump
Evet, işin root kısmı hallolmuştu. Şimdi sırada dosyaları almak vardı. Karşıma çıkan ilk sorun karakter kodlaması oldu. Ben UTF-8 çalışıyordum fakat telefondaki dizin isimleri ISO-8859-9 olarak kodlanmışlardı. Haliyle şöyle bir komut çalışmıyordu:
tonguc@deepthought:~$ obexftp -i -c Görüntüler -l
Bu komut Görüntüler dizinini listelemesi gerekirken bu konuda oldukça isteksiz davranıyordu. Sorunun sebebi dizin ismindeki "ö" ve "ü" karakterleriydi. Bu sorunu çözmek için komuta ufak bir değişiklik yapmak gerekti:
tonguc@deepthought:~$ obexftp -i\ -c `echo Görüntüler | recode utf-8..iso-8859-9` -l
Voila! Artık doğru dizini listeleyebiliyordum! İkinci sorun ise OBEX protokolü üzerinden dosya aktarmamızı sağlayan güzel bir program olan obexftp'nin bir dizini komple kopyalama gibi bir özelliği olmamasıydı. Dizindeki dosyaların listesini alıp sonra da bunları teker teker cihazdan alacak bir program lazımdı. Aslında obexftp'nin -l parametresi ls komutununkine benzer, adam akıllı bir çıktı üretseydi bu bir sorun olmayacaktı fakat kendisi XML üretmeyi tercih ediyordu. Açıkçası gecenin bu saatinde hiç XML işlemekle uğraşamazdım. Bu noktada da sağolsun eski dostum grep bir an sektirmeden imdadıma koştu. Telefonda çekilen fotoğrafların isimleri için bir ön ek verebiliyordunuz. Bu telefonda ön ek "Foto"ydu.
tonguc@deepthought:~$ obexftp -i \ -c `echo Görüntüler | recode utf-8..iso-8859-9` -l | egrep\ -o 'Foto[0-9]{3}\.jpg' > foto.list
Evet, artık elimde düzgün bir foto listesi vardı. Artık tek yapmam gereken bir for komutu ile bunları teker teker almaktı.
tonguc@deepthought:~$ for foto in `cat foto.list`; do obexftp -i\ -c `echo Görüntüler | recode utf-8..iso-8859-9`\ -g $foto; done
Birkaç dakikalık bekleyişin ardından dosyalar diskimdeydi. Bir de komut satırı zor derler...