Como encontrar (e excluir) arquivos duplicados

122

Eu tenho uma coleção de músicas largish e há algumas duplicatas lá. Existe alguma maneira de encontrar arquivos duplicados. No mínimo, fazendo um hash e verificando se dois arquivos têm o mesmo hash.

Pontos de bônus para encontrar arquivos com o mesmo nome, além da extensão - acho que tenho algumas músicas com as versões em formato mp3 e ogg.

Fico feliz em usar a linha de comando se essa for a maneira mais fácil.

    
por Hamish Downer 08.09.2010 / 21:11

8 respostas

129

Eu uso fdupes para isso. É um programa de linha de comando que pode ser instalado a partir dos repositórios com sudo apt install fdupes . Você pode chamá-lo como fdupes -r /dir/ect/ory e imprimir uma lista de dupes. O fdupes também tem uma página inicial simples e uma artigo da Wikipedia , que lista mais alguns programas.

    
por qbi 08.09.2010 / 21:20
59

FSlint tem uma GUI e alguns outros recursos. A explicação do algoritmo de verificação duplicada a partir de sua 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

    
por Dominik 08.09.2010 / 21:31
49

Lista de programs/scripts/bash-solutions , que pode encontrar duplicatas e ser executada em nix :

  1. dupedit : Compara muitos arquivos de uma vez sem a soma de verificação. Evita comparar arquivos entre si quando vários caminhos apontam para o mesmo arquivo.
  2. dupmerge : funciona em várias plataformas (Win32 / 64 com Cygwin, * nix, Linux etc.)
  3. dupseek : Perl com algoritmo otimizado para reduzir leituras.
  4. fdf : baseado em Perl / c e é executado na maioria das plataformas (Win32, * nix e provavelmente outras). Usa MD5, SHA1 e outros algoritmos de soma de verificação
  5. freedups : script de shell, que pesquisa os diretórios que você especificar. Quando encontra dois arquivos idênticos, é difícil vinculá-los. Agora, os dois ou mais arquivos ainda existem em seus respectivos diretórios, mas apenas uma cópia dos dados é armazenada no disco; ambas as entradas de diretório apontam para os mesmos blocos de dados.
  6. fslint : tem interface de linha de comando e GUI.
  7. liten : ferramenta de linha de comando de deduplicação do Pure Python e biblioteca, usando somas de verificação md5 e um novo algoritmo de comparação de bytes. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : Uma reescrita do Liten original, ainda uma ferramenta de linha de comando, mas com um mais rápido modo interativo usando somas de verificação SHA-1 (Linux, Mac OS X, * nix)
  9. rdfind : Um dos poucos que classificam duplicados com base na ordem dos parâmetros de entrada (diretórios a serem verificados) em ordem para não apagar em fontes "originais / bem conhecidas" (se múltiplos diretórios forem dados). Usa MD5 ou SHA1.
  10. rmlint : Localizador rápido com interface de linha de comando e muitas opções para encontrar outro lint também (usa MD5)
  11. ua : ferramenta de linha de comando Unix / Linux, projetada para trabalhar com o find (e semelhantes).
  12. findrepe : ferramenta gratuita de linha de comando baseada em Java projetada para uma pesquisa eficiente de arquivos duplicados, ele pode pesquisar em zips e jars (GNU / Linux, Mac OS X, * nix, Windows).
  13. fdupe : um pequeno script escrito em Perl. Fazendo seu trabalho de forma rápida e eficiente. 1
  14. ssdeep : identifica arquivos quase idênticos usando o Hashing Piecewise de Trigger de Contexto
por v2r 03.04.2012 / 03:22
6

Se sua tarefa de desduplicação for relacionada à música, primeiro execute o aplicativo picard para identificar e marcar corretamente sua música (para encontrar arquivos .mp3 / .ogg duplicados, mesmo que seus nomes estejam incorretos). Observe que o Picard também está disponível como um pacote do Ubuntu.

Feito isso, com base na tag musicip_puid , você pode encontrar facilmente todas as suas músicas duplicadas.

    
por ΤΖΩΤΖΙΟΥ 08.09.2010 / 23:46
4

Outro script que faz esse trabalho é rmdupe . Na página do autor:

% bl0ck_qu0te%     
por girardengo 22.04.2014 / 09:34
3

Você já tentou

finddup

ou

finddup -l

Eu acho que funciona bem.

    
por xerostomus 05.07.2014 / 06:34
2

Para a identificação e exclusão de duplicatas relacionadas à Música, Picard e Jaikoz pelo link é a melhor solução. Jaikoz acredito que automaticamente tags sua música com base nos dados do arquivo de música. Você nem precisa do nome da música para identificar a música e atribuir todos os metadados a ela. Embora a versão gratuita possa marcar apenas um número limitado de músicas em uma execução, você pode executá-la quantas vezes quiser.

    
por Yathi 22.04.2014 / 09:47
2

Eu uso o komparator - sudo apt-get install komparator ( Ubuntu 10.04+ ) - como ferramenta GUI para encontrar duplicatas no modo manual.

    
por N0rbert 29.12.2013 / 13:15