Ferramentas Linux para encontrar arquivos duplicados?


13

Eu tenho um conjunto grande e crescente de arquivos de texto, todos muito pequenos (menos de 100 bytes). Eu quero diferenciar cada par possível de arquivos e anotar quais duplicatas. Eu poderia escrever um script Python para fazer isso, mas estou me perguntando se existe uma ferramenta de linha de comando do Linux existente (ou talvez uma simples combinação de ferramentas) que faria isso?

Atualização (em resposta ao comentário do mfinni ): Os arquivos estão todos em um único diretório, portanto, todos têm nomes de arquivos diferentes. (Mas todos eles têm uma extensão de nome de arquivo em comum, facilitando a seleção de todos eles com um curinga.)


Estou assumindo que os nomes de arquivos não são duplicados, apenas o conteúdo?
mfinni

pixelbeat.org/fslint, se você estiver procurando pelo conteúdo acima, pode ajudá-lo. :)
Rajat

Respostas:


22

Há os fdupes . Mas eu costumo usar uma combinação defind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Esta variação trabalhou para mim: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (eu usei -D uniq, e eu prefiro xargs para encontrar-exec.)
Daryl Spitzer

+1 Eu não estava ciente dos fdupes, essa ferramenta parece muito útil.
Zoredache

3
@ Daryl: Usar xargsassim não funciona para nomes de arquivos com espaços em branco, -execmas usar . Usar -type fcomo argumento adicional para find(pode ser usado junto com -name) restringe a pesquisa a arquivos.
fuenfundachtzig

+1 para fdupes, pois também é rápido para arquivos binários enormes.
Bengt

Em algumas raras ocasiões, tive xargs não funcionando (travando após uma certa quantidade de arquivos processados), mas não encontrei -exec, que funcionava o tempo todo. @fuenfundachtzig, pode-se usar xargs -0 --delimiter = "\ n" para lidar com esse tipo de arquivo.
precisa saber é o seguinte


3

Você quase certamente não quer diferenciar cada par de arquivos. Você provavelmente desejaria usar algo como md5sums para obter todas as somas de verificação de todos os arquivos e canalizá-las para alguma outra ferramenta que somente reportará somas de verificação duplicadas.


2
Você pode reduzir o número de md5sums calculados calculando apenas o md5sums para arquivos com tamanho, para os quais há mais de um arquivo desse tamanho. Portanto, para todos os arquivos com tamanho único em bytes, não é necessário um md5sum, pois eles não podem ser duplicados de nada.
tomsv
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.