Kényelmes duplikátumkeresőt keresek linuxra

Fórumok

Paranoid módon mindig és mindent mentek, aminek következménye, hogy ezer dolog ezer meg egy példányban van elmentve külön mappákban és eszközökön.

Keresek egy olyan linux alatt kényelmesen használható programot, ami képes lenne arra, hogy megadok neki két mappát, és megkeresi a duplikátumokat. (Duplikátum alatt megelégszem a teljes azonossággal, tehát ha a  fájl neve és tartalma is azonos, rosszabb esetben akár el tudom fogadni a fájlnév és méret azonosságot is.) Nem feltétel, hogy grafikus felülete legyen.

Szeretném elkerülni, hogy a kérésre egy 18 millió sorból álló áttekinthetetlen listát kapjak. Olyan eszközt keresek, ami valóban segítség. Például észreveszi, ha egy teljes mappa azonos, és nem adja meg minden fájlját. Vagy képes a legnagyobb egyezőség megkeresésére, és azt vissza tudja adni.

Elsődleges célom a helyfelszabadítás lenne, másodlagos, hogy ezek után áttekinthetőbbé és használhatóbbá tehessem a mentési adatszerkezetemet.

Van ilyen program? Tudtok ajánlani? Netán használtok is ilyet?

Hozzászólások

Esetleg olyan fájlrendszert ami rendelkezik deduplikációval? És akkor nem kell a hely miatt aggódnod.

Vagy használhatsz esetleg olyan backup megoldást, ami deduplikál. Ez lehet rsync, hard linkekkel (ekkor csak fájl-szintű dedup van; ha akár egy byte is változik egy fájlban, akkor az egész fájl újra mentésre kerül), vagy valami rolling hash-alapú cucc, aminél nagyjából a fájlon belüli változások mentődnek csak. Utóbbira példák: 
* borg (cli, kliens oldalon titkosít; választható tömörítéssel; )
* restic (cli, kliens oldalon titkosít; két szintnyi zstd tömörítéssel; tud közvetlenül a felhőbe (S3/B2, vagy RCLONE-nal bárhova); Windows-on VSS-t támogat)
* kopia (van hozzá valami gui-s cucc is, ami a CLI-t hívja; kliens oldalon titkosít)
* duplicati (c#-ban van írva, linux alatt mono-val megy; Windows-on VSS-t támogat; kliens oldalon titkosít)
* duplicacy (otthoni használatra a CLI része ingyenes, csak LZ4 tömörítés van benne; több gépet is lehet egy repóba menteni, akár egyszerre is, mert lockfree)
 

Nagy gyakorlatom nincs, csak alkalmanként használom, de a czkawka nem rossz, lehet, érdemes megpróbálnod.

Szerkesztve: 2023. 05. 18., cs – 16:13

Kérdezd meg a chatGPT-t. Viccen kívül. Nálam most összevissza adatmozgatás ment és minden össze lett hányva, gyönyörűen meg lehet vele íratni amit keresel.

Nekem egy scriptbe összerakott egy olyat ami átfut az összes mappán és almappán, duplikátumokat megkeresi (md5 hash alapján is ha kéred), lelogolja hogy melyik file-t törölte és hogy mi volt az eredeti file. Azt is meg tudod adni neki hogy legyen mappa amiből nem töröl, így meg tudsz adni egy "master" helyet.

Utána szépen megnézettem vele az exif datát hogy mikor készült a kép/videó és ez alapján áthelyeztettem vele YYYY-MM formátumú mappákba. Amiknél nem talál exifdatát azokat pedig átrakta egy unknown mappába úgy hogy megtartotta az eredeti könyvtárstruktúrát, szóval ezután a maradékot könnyebb lesz rendezni.

A végére még lehet is kérni tőle kis reportot hogy hány file lett törölve, mennyi helyet takarítottál meg. Üres mappákat is töröltetheted vele.

 

Annyi hogy mielőtt az éles adatokra ráereszted mindenképpen teszteld le néhány demo file-al és ez alapján korrigáltass vele ha hülyeséget írt. Még nyelvet is meg tudsz neki adni hogy mit használjon.

Elméletben faszán hangzik, de azért nagyon bátor ember vagy, hogy az adataidat rábízod egy ChatGPT-s megoldásra. Én egy bevásárlási listát nem bíznék rá, vagy hogy a ‘ggem kitöröltessem vele, mert szerintem azt se csinálná meg normálisan. Persze, örülök, hogy ez így neked működik, de azért elég kockázatos manőver.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Annyi hogy mielőtt az éles adatokra ráereszted mindenképpen teszteld le néhány demo file-al és ez alapján korrigáltass vele ha hülyeséget írt. 

Ez egy fontos lépés benne, nem véletlenül írtam. Futottam bele hogy nem logol rendesen, futottam bele hogy hiányzó exif esetén idióta nevű mappákba dob át mindenfélét, volt hogy valami változót nem tudott felolvasni. Passz, én bash scriptből nagyon max 10-15 sorosokat szoktam írogatni, semmi hardcore felhasználás. Itt is trial and error alapon működött a dolog, élesre csak akkor engedtem rá amikor már minden rendben ment és azt is csak úgy hogy volt egy másik offline winyón biztonsági mentésem. Ha pár év múlva se hiányzik semmi és kelleni fog a hely akkor az lesz elsőnek törölve.

Annyi hogy a script még az rpi-n van, de már a zimaboard fut, ha hazaértem akkor kikapom belőle sd kártyát és feldobom pastebin-re.

mindig és mindent mentek

Úgy érzem inkább össze-vissza másolgatsz. ;)

A chatGPT és mindenféle okosság helyett

  • A  mentéskor egy markerrel eltárolhatod a mentés idejét, amihez képest inkremetális mentést készíthetsz. (find ---newer)
  • Kell valami kontrol file az exklúció, inklúzió stb. meghatározáshoz.
  • A metést készítsd tar segítségével, ami tömörít is, ha kell, egy file több példányát is tárolja.
  • Hely felszabadításához néha végig lehet nyalni és kidobni a duplikátumokat.

Szóval ki kell találnod mit akarsz.

rm -rf .

utana tuti nem lesz 1 duplikatum se! mindet megtalalja es likvidalja! :)

Szerkesztve: 2023. 05. 22., h – 14:05

Én is ebben a cipőben járok.  Igazuk  van azoknak, akik azt mondják mint kellett volna csinálnunk -igen nem mentettünk, hanem másolgattunk.(észnélkül)

De .. Ez segítség kérés.

Nyilván az is segítség, hogy kellene csinálni, ha majd rend lesz.

De ... előbb rendet kellene csinálni.

Köszönöm uzsolt !

arpi_esp: tetszett, poénnak  jó volt. Mosolyogtam is rajta..... De tényleg.

szerk:

rm -rf . ---mert megérdemled!

Szerkesztve: 2023. 05. 18., cs – 22:37

find / -type f |xargs  md5sum | sort|awk '{print $2,$1}'|uniq --all-repeated=separate -f 1 | cut -d" " -f 1

 

Az üres fájlokat is azonosnak jelöli, ha ez nem kívánatos, akkor a find -nak kell egy "-size +1b" is.

A listákat nem fogod megúszni. Ha a uniq-nak  "--all-repeated=separate"  helyett "-d" -t adsz meg akkor az egyezők köszül csak egy találatot ír ki, ergo akár azt rögtön törölheted is. (biztos ami biztos, előtte azért mentsd el... :) )

Egyébként meg ahogy fentebb is javasolták: fdupes  (az törölni is tud)

A kérdés szerintem nem is a duplikációk megtalálása, hanem az, hogy mihez kezdesz a dolgokkal utána.
Mert teljesen más stratégia az, ha az a cél, hogy van dir A meg dir B és ami az A-ban van, az a B-ből törlésre kell hogy kerüljön.
Illetve kérdés, hogy mi van akkor, ha valami csak B-ben van benne. 

Én mindenképpen felvázolnám, hogy milyen mentési stratégiát akarnék a jövőben és ahhoz alakítanám a duplikátum keresést. 
 

fslint -et hasznaltam, a millio kep mindenfele alkonyvtarakba (mikor-hova uritettem le a fenykepezobol a kartyat) egyre tobb kepem volt, a kulonbozo konyvtarakban, de mi el nem tudtam, hogy mit masoltam mar ki, es mit nem, ezert ujra es ujra kitettem. Sajnos azt nem tudtam elerni, hogy megmutassa a legjobban egyezo alkonyvtarakat, de tud olyat, hogy peldaul minden egyforma csoportbol megtartja a legelsot, ami utan mar egyszeru volt egybe masolni a szerteszet levo, de mar egyedi allomanyokat.

Szerintem is rossz irányban keresel, de hogy miért ahhoz meg kell osszam hogy én hogy csinálom, a recept nálam Minio + restic + paperless-ngx + organise

https://min.io/
https://restic.net/
https://docs.paperless-ngx.com/
https://organize.readthedocs.io/en/latest/

Ahol minio az a restic backend (georeplicated) restic mert eleve van benne deduplication meg compression, meg encryption meg stb, organise meg a szíve az egésznek, file tartalom kulcsszó stb alapján kerül oda ahova kell, ha olyan akkor megy paperless-ngx-re API-on keresztül, ha olyan akkor kuka, stb stb jelenleg cron futtatja de lehet csináltok majd inotify rule-t hozzá egyszer.

 

De a legfontosabb az organise!