képek mappa rendberakása

Fórumok

Immáron igen nagyra duzzadt a képállományom, és szeretném azt rendbe tenni.
Próbáltam a digikamot, és az egyezőeket megkerestetni vele, de 2 napig tartott csak az indexelés.
Aztán gondoltam, hogy mi van ha md5sum-ot használnék? Rá is küldtem a Képek mappára. Lett is egy 7,5MiB-es txt állományom "szám hely" szintakszissal. És ez csak 1-2 órába tellett.
Erre ráküldtem a sort parancsot, és az szépen egymás alá rendezte a dolgokat.

Így világosan látni hogy melyik képből hány van a különböző almappákban.
Most már csak kéne valami script, melyet ráengedhetnék, hogy kitörölje a felesleget. Erre keresnék ötleteket.

000a4ff439692755189c90fccf0a829b /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/+2/Egyéb/telefon 2007-től 1160.jpg
000a4ff439692755189c90fccf0a829b /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/+2/Rendezni/vegyes 1800-2005/telefon 2007-től 1160.jpg
000a4ff439692755189c90fccf0a829b /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/virtual/Pictures/vegyes 1800-2005/telefon 2007-től 1160.jpg
000bc2e24e7cfef953e332c614187fa3 /mnt/egyebek/Képek/Rendezni/Gimp/Készül/Adrienn/xcf/Adrienn ujság.xcf
000c39b942de9a1b85b0a7444691354c /mnt/egyebek/Képek/Kamerák/Hyundai A8324/2009/2009-06/pic_0135.jpg
000cb048980ab36c138cd7badfd70841 /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/+2/Egyéb/telefon 2007-től 1015.jpg
000cb048980ab36c138cd7badfd70841 /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/+2/Rendezni/vegyes 1800-2005/telefon 2007-től 1015.jpg
000cb048980ab36c138cd7badfd70841 /mnt/egyebek/Képek/Rendezni/Egyéb/Gabiék/virtual/Pictures/vegyes 1800-2005/telefon 2007-től 1015.jpg
000cd1110cb5cd7a0bf4d2ed430dfe74 /mnt/egyebek/Képek/Rendezni/Pénzek/HungaryPM6b-20Pengo-1944-donatedgh_b.jpg

Hozzászólások

mindegy melyik marad, csak mindegyikből egy?

rendezett file neve legyen mondjuk file

for sum in $(uniq -w32 -c < file | awk '$1 > 1{print $3}') # összes md5, amiből több van
do
	for pic in $(grep $sum file | awk 'NR > 1{print $3}') # duplikátumok
	do
		rm $pic
	done
done

naív nekifutás, ha szóköz van a filenevekben, nem működik, és abc sorrend dönti el, melyik file marad meg.
biztonsági másolat nem árt. vagy az "rm $pic" sort cseréld ki "echo rm $pic"-re és pipe-old az eredményt egy file-ba.
Ha végigolvastad és jó, akkor lefuttathatod a file-t a shellből.

--------------------------------------
Unix isn't dead. It just smells funny.

Keress valami file managert ami tud "directory branch" -et vagy "flat view -t". (Ebben a modban a cucc kilistazza az osszes fajlt egy directory alatt). Ranyomsz a rendezesre, es torolgetsz. (Csak miheztartas vegett a TotalCommander es a FreeCommander CTRL+B -re csinalja ezt.)

Mivel csak egyszer kell, nem lesz tobb munka mint megirni a szkriptet.

szerk: ez kell neked Fdupes.

Lehet ezt keresed:

apt-get install fdupes

Igy futtatva minden egyező fileból csak egyet tart meg. De előtte azért nézz man page-et:

fdupes -r -N -1

Itt véget is fog érni a dolog egyébként? Mármint ezzel ki vannak szűrve a duplumok, de még nem vesz fel rendezettebb struktúrát a képgyűjtemény. Vagy az nem is cél?
--
Direp

Nem. Természetesen vannak kategóriák, melyeket manuálisan hoztam létre. Van egy kifejezetten pld. a családban használatos digikameráknak, és ott
/típus/év/év-hónap/dscxxx struktúrákban vannak a képek.

Ami a netről meg innen onnan származik, azokat meg külön Természet, Állatok, Emberek stb. mappába tettem eddig is, és teszem majd most is a duplikátumok letörlése után.
Számomra így átlátható. Annak nem vagyok híve hogy "Nyaralás Horváthország 2000" mappát gyártsak, és abban "Pistike szalad a labda után.jpg" -re nevezzem át a
képe(ke)t.
Volt egy nagy Rendezni mappa, és főleg ott voltak a duplikátumok.

Gondolom, az fdupes mindent megcsinál. Viszont, ha script, úgy hash egyezés esetén ténylegesen is össze kell hasonlítani - cmp - a file-okat. Törlés után érdemes hardlinket csinálni, így a HDD-n kevesebb helyet foglal, viszont minden marad úgy, mint régen.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Igen, a cmp fontos, különben minden 340 282 366 920 938 463 463 374 607 431 768 211 456 képből egyet elvesztesz.

szerk: ennél valószínűleg kevesebb, mert ha mondjuk mindegyik kép 1 Byte-os, akkor minden 256.-ot veszted el. tehát ez csak akkor igaz, ha végtelenül nagyok a képfile-ok. de így sem lesz sok ütközés md5-tel. persze egy cmp olcsó, tehát lehet használni. de azért nem életbevágó. ez nem crc :)

--------------------------------------
Unix isn't dead. It just smells funny.

Igen, csak nem mindegy, hogy egy új kép tárolásánál minden már tárolt képpel végzel összehasonlítást, vagy megnézed a hash-táblát, s előbb méret egyezésre vizsgálsz, ha az azonos, akkor hash-re, s ha az is, akkor ténylegesen összehasonlítod a file-okat.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

OK, csak ugye az a kérdés, hogy egy többé-kevésbé jó programot akarunk írni, amelyikben előfordulhat adatvesztés, vagy egy mindig jót. Igaz, hogy kicsi a hash egyezés valószínűsége, de azért nem nulla. Ha 0 lenne, akkor igan hatékony képtömörítési eljárásunk lenne. :)

A cmp használatával nem lassul lényegesen az algoritmus, hiszen csak hash egyezésnél kell használni, s mint írtad is, az szinte sohasem fordul elő.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Monnyuk ahol a képvesztés megakadályozása ennyire fontos, mert a kínai tüdőgondozó felvételeit tárolja, tán még ott is elég a cmp az összevetendő képek első 1-2 k-jára, és ha ennek ellenére elvész valami fontos, akkor mindenképpen megfontolandó a lottó vásárlása, vagy ellenkezőleg, aznap ki sem lépni az utcára, sőt gyorsan lefeküdni.