Képek gyüjtése hogyan?

Fórumok

Sziasztok.
Egy olyan kérdésem lenne, hogy van-e valami alkalmazás Debianban amivel képeket átlehetne automatice másolni egy erre kijelölt könyvtárba, az összes vincsiről?
Azt meg még nem is tudom mi legyen azokkal a képekkel amiknek ugyanaz a neve de a tartalma más?
Ha csak scriptel oldható meg, sajnos a programozáshoz nem igazán értek :(
Csak BASIC nyelven tudtam valaha programozni.
Köszönöm a választ előre is!

Hozzászólások

Szerintem az mc keresoje jo lesz erre a celra, az atnevezest is megoldhatod mikor felmerul a problema.
Nem vagyok biztos abban, hogy mit ertesz "automatice" alatt, az mc-vel valoszinuleg nem megoldhato, ahhoz mar find + cron + scripteles kell (ami nem igazan programozas).

-----
"Már nem csak tehetségekből, de a hülyékből is kifogytunk..."

Az automatizálás alatt azt értem, hogy "magától" csinálja meg, mert én nem értek hozzá :D
Valami hasonlóra gondoltam mint ahogy a a Shotwell végigkeresi a képeket.
Köszi az mc-ről a tanácsot!
Igaz használom már vagy tizenéve, de még nem kerestettem vele :)
Kipróbálom.

Ez csak kiindulási ötlet pld.:
locate *.jpg >> kepek_path.txt
locate *.jpeg >> kepek_path.txt
locate *.png >> kepek_path.txt

majd egy scriptben:
while do -val végig menni a kepek_path.txt sorjain és elvégezni a másolást.

Kéne egy kis segítség!
Eddig jutottam:
locate *.jpg >> kepek_path.lst
locate *.jpeg >> kepek_path.lst
locate *.png >> kepek_path.lst
... + amilyen kép formatumok kellenek

és
cp $( < kepek_path.lst) /ahova/másolnám/mappa

csak az a baj , hogy ha már létezik pld.: 22.jpg akkor a másik mappában lévő 22.jpg-t már nem másolja át vagy felülírná -f. Van vmi parancs amivel a .lst-ben rendezni lehetne és átnevezni ha már van 2 ugyan olyan nevű jpg ?

Van egy rejtett csapda is, ha eleve úgy néz ki egy kép neve, mint amire korábban átneveztünk egy duplikáltat. Vagy inkrementált, vagy konkatenált (mint itt, mert könnyebb) taggel lehet védekezni a duplikáció megszüntének detektálásáig.


$ cat kepek_path.lst
/ez/egy/ut/elso.jpg
/ez/egy/ut/masodik.jpg
/ez/egy/ut/masodik.png
/ez/egy/masik/ut/elso.jpg
/ez/egy/harmadik/ut/elso.jpg
/ez/egy/negyedik/ut/elso_.jpg
$ awk -F'\/' '{
   src = $0
   tgt = $NF
   while ( tgt in a) {
      sub( /\.[^.]+$/, "_&", tgt)
   }
   a[tgt]

   if (tgt != $NF) {
      printf "mv \"%s\"  \"/mit/tom/en/hova/%s\"\n", $0, tgt > "kivetelek.sh"
   } else {
      print
   }
}' kepek_path.lst
awk: warning: escape sequence `\/' treated as plain `/'
/ez/egy/ut/elso.jpg
/ez/egy/ut/masodik.jpg
/ez/egy/ut/masodik.png
$ cat kivetelek.sh
mv "/ez/egy/masik/ut/elso.jpg"  "/mit/tom/en/hova/elso_.jpg"
mv "/ez/egy/harmadik/ut/elso.jpg"  "/mit/tom/en/hova/elso__.jpg"
mv "/ez/egy/negyedik/ut/elso_.jpg"  "/mit/tom/en/hova/elso___.jpg"

Az ilyen átnevezős játékok (főleg, ha még a könyvtárstruktúrán is matatni kell) jó példái annak, hogyan lehet gyors, frappáns és hibás megoldásokat találni.

find / -name "*.jpg" >>./jpg_kepek.txt
find / -name "*.gif" >>./gif_kepek.txt
find / -name "*.png" >>./png_kepek.txt

Aztán 'replace' -val beszúrni a sorok elé egy 'cp' -t , meg a végére azt, ahova másolni akarod.

Adni neki futtatási jogot ('chmod 777 ./jpg_kepek.txt') ....
Aztán 'sh ./jpg_kepek.txt' .....

Ezen a -name -iname-re (ha már gnu find; súlyosabb esetben akár -iregexre) cserélésével lehet segíteni.

Viszont arra, hogy többször kergetjük végig a findot mindenen, Matula bácsi azt dörmögné, hogy "maga tuggya..., én azé a -o opciót használom, me' azt szoktam meg."


find /itt /ott /amott -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.gif' |
awk -F'\.' '{
   ext=tolower($NF)
   if (ext == "jpeg") ext="jpg"
   print > (ext ".lst")
}'

Úgy rémlik, mintha a Picasa-nak is és a Kphotoalbumnak (vagy egy másik, hasonló nevű alkalmazásnak) lenne ilyen funkciója is.

Úgy rémlik, hogy a picasa mindent mindenképp egy helyre másol, a másik esetében meg úgy emlékszem, opcionális.

Csak feltételezés.

A kedvenc fájlkezelődben a / könyvtárban állva rákeresel a jpg kiterjesztésű fájlokra, rekurzívan.

(Egy jobb fájlkezelő képes egyszerre jpg-re, png-re ... is keresni.)

A keresés végeztével a találati listában kijelölöd az összes fájlt, és átmásolod egy könyvtárba.

A fájlkezelő azonos fájlnév esetén megkérdezi, hogy felülírást/átnevezést/semmit akarsz, és felajánlja, hogy az összes fájlnév-ütközés esetén a választásodnak megfelelően cselekszik.

GUI-n elméletben ennyi lenne.

:)