Como encontrar (e excluir) arquivos duplicados

120

Eu tenho uma grande coleção de músicas 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

124

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
57

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 < img src="https://hostmar.co/software-large">

    
por Dominik 08.09.2010 / 21:31
48

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:

  

O rmdupe usa comandos padrão do linux para pesquisar em pastas especificadas por arquivos duplicados, independentemente do nome do arquivo ou da extensão. Antes que os candidatos duplicados sejam removidos, eles são comparados byte a byte. O rmdupe também pode verificar duplicatas em uma ou mais pastas de referência, pode lixeira de arquivos em vez de removê-los, permite um comando de remoção personalizado e pode limitar sua pesquisa a arquivos de tamanho especificado. O rmdupe inclui um modo de simulação que relata o que será feito para um determinado comando sem realmente remover nenhum arquivo.

    
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