Portál AbcLinuxu, 12. května 2025 11:53

Dotaz: Jak efektivně odstranit duplicitní soubory?

10.12.2014 08:14 neprihlaseny Indian
Jak efektivně odstranit duplicitní soubory?
Přečteno: 1353×
Odpovědět | Admin
Ahoj, potřebuji smazat duplicitní fotky, dokumenty, aj. v adresáři s celkovou velikostí 160GB. Chci mít jen jednu kopii, ostatní duplicitní soubory chci smazat. V souborech si poté udělám pořádek, ale ještě předtím bych rád tyto duplicity a poté i prázdné složky smazal, abych měl práci ulehčenou.

Potřebuju poradit jaký nástroj na to nasadit, tak aby uměl dostatečně rychle přečíst hash souborů (či jaké metody na zjišťování souborů zde jsou?) a byl jednoduchý na obsluhu. Nevyžaduji GUI, terminál mi vyhovuje. Máte nějakou zkušenost co na těchto 160GB dat nasadit? Děkuji, Indián :)


Řešení dotazu:


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.12.2014 08:28 Petr
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.abclinuxu.cz/blog/Par_slov/2014/8/velky-uklid-v-pocitaci
10.12.2014 08:44 neprihlaseny Indian
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Děkuji fdupes je to co jsem hledal :)
Fuky avatar 10.12.2014 13:17 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?

Ještě doplním:

Líbí se mi volba -m, která najde duplicitní soubory a udělá z nich hardlinky.

# aptitude install fslint
$ /usr/share/fslint/fslint/findup -m /data
$ /usr/share/fslint/fslint/findup --help

Jendа avatar 10.12.2014 11:44 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pustil bych rekurzivně sha1sum a potom výsledek setřídil a prošel.
10.12.2014 12:05 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Třídění je zbytečné.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jendа avatar 10.12.2014 18:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Nenapadá mě jak přímočaře napsat skript, který najde duplicity v nesetříděném seznamu.
10.12.2014 19:17 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Použiješ ten hash jako index ve slovníku.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jendа avatar 10.12.2014 21:01 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
No dobře, ještě jsem předpokládal, že se to bude dělat pomocí pár řádků v shellu :)
10.12.2014 21:29 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
A shell to snad neumí?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jendа avatar 10.12.2014 22:27 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
Aha, umí. Akorát ve výše uvedeném blogpostu měly jenom cesty jenom k duplikátům 150 mega, takže se to možná nevejde do paměti.
11.12.2014 01:09 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Jak efektivně odstranit duplicitní soubory?
No po té zkušenosti z úklidem, mi připadá, že optimální by bylo mít řešení ve 3 postupných krocích.
  1. Projít jen adresářovou strukturu a setřídit/zahešovat soubory podle velikosti. Různě velké soubory nejsou stejné.
  2. Pro stejně velké soubory, načíst do paměti první sektor (512B nebo 4k) a porovnat je byte_to_byte (samozřejmě porovnávat je ne po bytech, ale slovech procesoru), Hash je poměrně spousta počítání proti přimému porovnání a dá se očekávat, že pokud se soubory liší, začnou se většinou lišit dost brzy.
  3. Tím se vystrukturují "potenciálně stejné soubory" a u nich má možná smysl počítat hash, ale není mi to úplně jasné. Připadá mi, že přímé porovnání systém méně zatíží. Rozdíl identifikuji ihned a ne až po projítí celého souboru. A pravděpodobnost, že po projítí úvodního stejného sektoru, bych měl někde v hloubi souboru rozdíly a byly by uspořádány tak, že např se souborů A,B,C, by B a C byly stejné, ale já bych nejdříve vzal A a po zjištění rozdílu u obou bych musel ještě separátně porovnat B a C mi připadá menší, než ztráty z náročnějšího výpočtu hashe u všech souborů
Navíc u menších souborů, které by se všechny "potenciálně stejné" vešly do paměti, bych porovnání mohl celé dělat způsobem 2.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.