Jak najít (a odstranit) duplicitní soubory

121

Mám rozsáhlou hudební sbírku a tam jsou nějaké duplikáty. Existuje nějaký způsob, jak najít duplicitní soubory. Přinejmenším tím, že provedete hash a uvidíte, zda mají dva soubory stejný hash.

Bonusové body pro nalezení souborů se stejným jménem kromě rozšíření - myslím, že mám nějaké skladby s verzemi formátů mp3 a ogg.

Jsem spokojený s použitím příkazového řádku, pokud je to nejjednodušší způsob.

    
dané Hamish Downer 08.09.2010 21:11

8 odpovědí

128

Pro tento účel používámfdupes. Jedná se o příkazový program, který lze nainstalovat z úložišť ssudo apt install fdupes. Můžete jej nazvatfdupes -r /dir/ect/ory a vytisknout seznam dupesů. fdupes má také jednoduchou domovskou stránku a článek Wikipedia , který uvádí další programy.

    
odpověděl qbi 08.09.2010 21:20
58

FSlint má grafické uživatelské rozhraní a některé další funkce. Vysvětlení duplicitního kontrolního algoritmu z jejich FAQ:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint

    
odpověděl Dominik 08.09.2010 21:31
49

Seznamprograms/scripts/bash-solutions, který může najít duplikáty a spustit podnix:

  1. dupedit : Porovnává se mnoho souborů najednou bez kontrolního součtu. Zabraňuje porovnávání souborů proti sobě, když více cest vede k stejnému souboru.
  2. kopírování : běží na různých platformách (Win32 / 64 s Cygwin, * nix, Linux atd.)
  3. dupseek : Perl s algoritmem optimalizovaným pro snížení čtení.
  4. fdf : Perl / c a běží napříč většinou platforem (Win32, * nix a pravděpodobně i další). Používá algoritmy MD5, SHA1 a další kontrolní algoritmy
  5. uvolnění : shell skript, který vyhledává adresáře, které zadáte. Když najde dva identické soubory, je těžké je propojit. Nyní existují dva nebo více souborů v příslušných adresářích, ale pouze jedna kopie dat je uložena na disku; obě adresáře směřují na stejné bloky dat.
  6. fslint : má rozhraní příkazového řádku a grafické uživatelské rozhraní.
  7. liten : nástroj Python deduplikace příkazové řádky a knihovna pomocí md5 kontrolních součtů a nového byte algoritmus. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : Přepsání původního souboru Liten, stále nástroj příkazového řádku, ale rychlejší interaktivní režim pomocí kontrolních součtů SHA-1 (Linux, Mac OS X, * nix)
  9. rdfind : Jeden z mála, který řadí duplikáty podle pořadí vstupních parametrů (adresářů pro skenování) v objednávejte, aby nebyly odstraněny v "originálních / známých" zdrojích (pokud jsou uvedeny více adresářů). Používá MD5 nebo SHA1.
  10. rmlint : Rychlý vyhledávací nástroj s rozhraním příkazového řádku a mnoho možností, jak najít i jiné vlákna (používá MD5)
  11. ua : Příkazový řádek Unix / Linux, určený pro práci s vyhledáváním (a podobně). li>
  12. findrepe : bezplatný nástroj příkazového řádku založený na jazyce Java určený pro efektivní vyhledávání (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : malý skript napsaný v Perl. Udělat svou práci rychle a efektivně. 1
  14. ssdeep : identifikujte téměř shodné soubory pomocí kontextového spouštěného dílčího hashingu
odpověděl v2r 03.04.2012 03:22
6

Pokud je vaše deduplikační úloha související s hudbou, nejprve spusťte aplikaci picard , která správně identifikuje a označuje vaši hudbu (takže najdete duplicitní soubory typu .mp3 / .ogg, i když jsou jejich názvy nesprávné). Všimněte si, že picard je také dostupný jako balíček Ubuntu.

To je hotovo, na základě značkymusicip_puid můžete snadno najít všechny duplikáty.

    
odpověděl ΤΖΩΤΖΙΟΥ 08.09.2010 23:46
4

Jiný skript, který provede tuto úlohu, je rmdupe . Z autorovy stránky:

  

rmdupe používá standardní linuxové příkazy pro vyhledávání v určených složkách pro duplicitní soubory bez ohledu na název souboru nebo příponu. Před odstraněním duplicitních kandidátů jsou porovnávány byte-byte. rmdupe může také zkontrolovat duplikáty proti jedné nebo více referenčním složkám, může místo toho odstranit soubory koše, povolit vlastní příkaz k odebrání a omezit vyhledávání na soubory určené velikosti. rmdupe obsahuje režim simulace, který hlásí, co bude provedeno pro daný příkaz, aniž by skutečně odstranilo nějaké soubory.

    
odpověděl girardengo 22.04.2014 09:34
3

Zkoušeli jste

finddup

nebo

finddup -l

Myslím, že to funguje dobře.

    
odpověděl xerostomus 05.07.2014 06:34
2

Pokud jde o duplicitní identifikaci a mazání související s hudbou, Picard a Jaikoz Odkaz je nejlepší řešení. Jaikoz Věřím, že automaticky nalepí vaši hudbu na základě dat ze souboru skladby. Dokonce ani nepotřebujete jméno skladby, aby bylo možné identifikovat skladbu a přiřadit jí všechna meta data. Přestože volná verze může v jednom cyklu označit jen omezený počet skladeb, můžete jej spustit tolikrát, kolik chcete.

    
odpověděl Yathi 22.04.2014 09:47
2

Používám komparátor -sudo apt-get install komparator ( Ubuntu 10.04+ ) - jako nástroj GUI pro vyhledávání duplicit v manuálním režimu.

    
odpověděl N0rbert 29.12.2013 13:15