Jak znaleźć (i usunąć) duplikaty plików

121

Mam dużą kolekcję muzyki i tam jest kilka duplikatów. Czy istnieje sposób na znalezienie duplikatów plików. Co najmniej przez wykonanie skrótu i ​​sprawdzenie, czy dwa pliki mają ten sam skrót.

Dodatkowe punkty za znalezienie plików o tej samej nazwie oprócz rozszerzenia - wydaje mi się, że mam kilka utworów w obu wersjach formatu mp3 i ogg.

Jestem zadowolony z używania wiersza poleceń, jeśli jest to najłatwiejszy sposób.

    
zadawane Hamish Downer 08.09.2010, 21:11
źródło

8 odpowiedzi

127

Używam do tego fdupes . Jest to program polecający, który można zainstalować z repozytoriów z sudo apt install fdupes . Możesz go nazwać jak fdupes -r /dir/ect/ory i wydrukuje listę duplikatów. fdupes ma również prostą stronę domową i artykuł w Wikipedii , który zawiera więcej programów.

    
odpowiedział qbi 08.09.2010, 21:20
źródło
58

FSlint ma GUI i kilka innych funkcji. Wyjaśnienie duplikatu algorytmu sprawdzania z ich 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 < img src="https://hostmar.co/software-large">

    
odpowiedział Dominik 08.09.2010, 21:31
źródło
48

Lista programs/scripts/bash-solutions , która może znaleźć duplikaty i uruchomić w nix :

  1. dupedit : porównuje wiele plików naraz bez sprawdzania poprawności. Unika porównywania plików ze sobą, gdy wiele ścieżek wskazuje na ten sam plik.
  2. dupmerge : działa na różnych platformach (Win32 / 64 z Cygwin, * nix, Linux itp.)
  3. dupseek : Perl z algorytmem zoptymalizowanym pod kątem zmniejszenia liczby czytań.
  4. fdf : na bazie Perla / c i działa na większości platform (Win32, * nix i prawdopodobnie innych). Wykorzystuje algorytmy MD5, SHA1 i inne sumy kontrolne
  5. freedups : skrypt powłoki, który przeszukuje określone katalogi. Po znalezieniu dwóch identycznych plików, trudno je połączyć. Teraz dwa lub więcej plików nadal istnieje w odpowiednich katalogach, ale tylko jedna kopia danych jest przechowywana na dysku; oba wpisy katalogów wskazują te same bloki danych.
  6. fslint : ma interfejs wiersza poleceń i GUI.
  7. liten : narzędzie wiersza poleceń deduplikacji Pure Python i biblioteka, używając sum kontrolnych md5 i powieści algorytm porównania bajtów. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : przepis oryginalnego Liten, wciąż narzędzie wiersza poleceń, ale z szybszym tryb interaktywny przy użyciu sum kontrolnych SHA-1 (Linux, Mac OS X, * nix)
  9. rdfind : jeden z niewielu, który ranguje duplikaty na podstawie kolejności parametrów wejściowych (katalogów do skanowania) w nie usuwać w "oryginalnych / znanych źródłach" (jeśli podano wiele katalogów). Używa MD5 lub SHA1.
  10. rmlint : szybki finder z interfejsem wiersza poleceń i wieloma opcjami znalezienia innych lintów (używa MD5)
  11. ua : narzędzie wiersza poleceń Unix / Linux, zaprojektowane do pracy z find (i tym podobne).
  12. findrepe : bezpłatne narzędzie wiersza polecenia oparte na języku Java, zaprojektowane z myślą o wydajnym wyszukiwaniu zduplikowanych plików, może wyszukiwać w obrębie zipów i słoików (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : mały skrypt napisany w Perlu. Wykonuj swoją pracę szybko i skutecznie. 1
  14. ssdeep : identyfikuj prawie identyczne pliki za pomocą haseł fragmentarycznych uruchamianych kontekstowo
odpowiedział v2r 03.04.2012, 03:22
źródło
6

Jeśli twoje zadanie deduplikacji jest związane z muzyką, najpierw uruchom aplikację picard , aby poprawnie zidentyfikować i oznaczyć swoją muzykę (aby znaleźć duplikować pliki .mp3 / .ogg, nawet jeśli ich nazwy są niepoprawne). Zauważ, że picard jest również dostępny jako pakiet Ubuntu.

Po wykonaniu tego, na podstawie znacznika musicip_puid , możesz łatwo znaleźć wszystkie duplikaty piosenek.

    
odpowiedział ΤΖΩΤΖΙΟΥ 08.09.2010, 23:46
źródło
4

Innym skryptem wykonującym to zadanie jest rmdupe . Ze strony autora:

  

rmdupe używa standardowych poleceń linuksowych do wyszukiwania w określonych folderach dla duplikatów plików, niezależnie od nazwy pliku lub rozszerzenia. Przed usunięciem zduplikowanych kandydatów porównuje się bajt po bajcie. rmdupe może również sprawdzać duplikaty względem jednego lub większej liczby folderów referencyjnych, może usuwać pliki bez ich usuwania, dopuszcza niestandardowe polecenie usuwania i może ograniczyć wyszukiwanie do plików o określonym rozmiarze. rmdupe zawiera tryb symulacji, który zgłasza, co zostanie wykonane dla danego polecenia, bez faktycznego usuwania jakichkolwiek plików.

    
odpowiedział girardengo 22.04.2014, 09:34
źródło
3

Czy próbowałeś

finddup

lub

finddup -l

Myślę, że to działa dobrze.

    
odpowiedział xerostomus 05.07.2014, 06:34
źródło
2

W przypadku powielonej identyfikacji i usuwania Picard i Jaikoz za pomocą muzyki, najlepszym rozwiązaniem jest link . Jaikoz wierzę, że automatycznie oznacza twoją muzykę na podstawie danych pliku piosenki. Nie trzeba nawet nazwy utworu, aby zidentyfikować utwór i przypisać do niego wszystkie metadane. Mimo że darmowa wersja może oznaczać tylko ograniczoną liczbę piosenek w jednym przebiegu, ale możesz go uruchomić tyle razy, ile chcesz.

    
odpowiedział Yathi 22.04.2014, 09:47
źródło
2

Używam komparatora - sudo apt-get install komparator ( Ubuntu 10.04+ ) - jako narzędzie GUI do wyszukiwania duplikatów w trybie ręcznym.

    
odpowiedział N0rbert 29.12.2013, 13:15
źródło

Przeczytaj inne pytania na temat tagów