Come trovare (ed eliminare) i file duplicati

121

Ho una collezione di musica più ampia e ci sono alcuni duplicati. C'è un modo per trovare i file duplicati. Come minimo, esegui un hash e verifica se due file hanno lo stesso hash.

Punti bonus anche per trovare file con lo stesso nome a parte l'estensione - Penso di avere alcuni brani con versioni sia in formato mp3 che ogg.

Sono felice di usare la riga di comando se questo è il modo più semplice.

    
posta Hamish Downer 08.09.2010 - 21:11

8 risposte

128

Uso fdupes per questo. È un programma a riga di comando che può essere installato dai repository con sudo apt install fdupes . Puoi chiamarlo come fdupes -r /dir/ect/ory e stamperà un elenco di dupes. fdupes ha anche una homepage semplice e un articolo di Wikipedia , che elenca altri programmi.

    
risposta data qbi 08.09.2010 - 21:20
58

FSlint ha una GUI e alcune altre funzionalità. La spiegazione dell'algoritmo di verifica dei duplicati dalle loro 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">

    
risposta data Dominik 08.09.2010 - 21:31
48

Elenco di programs/scripts/bash-solutions , che può trovare duplicati ed eseguire in nix :

  1. dupedit : confronta molti file contemporaneamente senza eseguire il checksum. Evita di confrontare i file con se stessi quando più percorsi puntano allo stesso file.
  2. dupmerge : gira su varie piattaforme (Win32 / 64 con Cygwin, * nix, Linux ecc.)
  3. dupseek : Perl con algoritmo ottimizzato per ridurre le letture.
  4. fdf : basato su Perl / c e funziona su molte piattaforme (Win32, * nix e probabilmente altre). Utilizza MD5, SHA1 e altri algoritmi di checksum
  5. libered : script di shell, che cerca nelle directory specificate. Quando trova due file identici, li collega strettamente. Ora i due o più file esistono ancora nelle rispettive directory, ma solo una copia dei dati è archiviata su disco; entrambe le voci della directory puntano agli stessi blocchi di dati.
  6. fslint : ha un'interfaccia a riga di comando e una GUI.
  7. liten : strumento da riga di comando per la deduplicazione Pure Python e libreria, utilizzando checksum md5 e un romanzo algoritmo di confronto dei byte. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : una riscrittura del Liten originale, ancora uno strumento da riga di comando ma con una velocità maggiore modalità interattiva usando checksum SHA-1 (Linux, Mac OS X, * nix)
  9. rdfind : uno dei pochi che classifica i duplicati in base all'ordine dei parametri di input (directory da analizzare) in ordine di non cancellare in "originali / ben noti" fonti (se sono fornite più directory). Utilizza MD5 o SHA1.
  10. rmlint : finder veloce con interfaccia a riga di comando e molte opzioni per trovare anche altri lanugine (usa MD5)
  11. ua : strumento da riga di comando Unix / Linux, progettato per funzionare con find (e simili).
  12. findrepe : strumento da riga di comando gratuito basato su Java progettato per una ricerca efficiente di file duplicati, può cercare all'interno di zips e jars. (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : un piccolo script scritto in Perl. Svolgere il proprio lavoro in modo rapido ed efficiente. 1
  14. ssdeep : identifica file quasi identici usando l'hashing a tratti casuale attivato da Context
risposta data v2r 03.04.2012 - 03:22
6

Se la tua attività di deduplicazione è legata alla musica, per prima cosa esegui l'applicazione picard per identificare e taggare correttamente la tua musica (in modo che tu possa trovare duplicare i file .mp3 / .ogg anche se i loro nomi non sono corretti). Nota che picard è anche disponibile come pacchetto di Ubuntu.

Fatto ciò, in base al tag musicip_puid puoi trovare facilmente tutti i tuoi brani duplicati.

    
risposta data ΤΖΩΤΖΙΟΥ 08.09.2010 - 23:46
4

Un altro script che fa questo lavoro è rmdupe . Dalla pagina dell'autore:

  

rmdupe usa i comandi standard di linux per cercare all'interno delle cartelle specificate file duplicati, indipendentemente dal nome del file o dall'estensione. Prima che i candidati duplicati vengano rimossi, vengono confrontati byte per byte. rmdupe può anche controllare i duplicati su una o più cartelle di riferimento, può cestinare i file invece di rimuoverli, consente un comando di rimozione personalizzato e può limitare la ricerca ai file di dimensioni specificate. rmdupe include una modalità di simulazione che riporta ciò che verrà fatto per un determinato comando senza rimuovere alcun file.

    
risposta data girardengo 22.04.2014 - 09:34
3

Hai provato

finddup

o

finddup -l

Suppongo che funzioni bene.

    
risposta data xerostomus 05.07.2014 - 06:34
2

Per l'identificazione e l'eliminazione di duplicati relativi alla musica, Picard e Jaikoz di link sono la soluzione migliore. Credo che Jaikoz tagga automaticamente la tua musica basandosi sui dati del file di canzoni. Non hai nemmeno bisogno del nome della canzone per identificare il brano e assegnargli tutti i metadati. Anche se la versione gratuita può taggare solo un numero limitato di canzoni in una sola esecuzione, ma puoi eseguirla tutte le volte che vuoi.

    
risposta data Yathi 22.04.2014 - 09:47
2

Uso komparator - sudo apt-get install komparator ( Ubuntu 10.04+ ) - come strumento GUI per trovare duplicati in modalità manuale.

    
risposta data N0rbert 29.12.2013 - 13:15

Leggi altre domande sui tag