Eu vou assumir que você se importa com o arquivo "content". Determinar arquivos idênticos é fácil, qualquer localizador de duplicação fará o seguinte:
- GNU / Linux:
find . ! -empty -type f -exec md5sum {} + | sort | uniq -w32 -dD
- GNU / Linux: fdupes (geralmente disponível com
sudo apt install fdupes
) - GNU / Linux: duff (geralmente disponível com
sudo apt install duff
- Windows: CCleaner
- Windows: dupeGuru [1]
- Windows: Removedor de arquivos duplicados
Para arquivos "Similares" em geral, fica mais difícil - muito mais difícil. Se você está procurando fotos / imagens semelhantes, confira . dupeGuru
acima tem uma pesquisa de similaridade de imagem que alguns acham que é OK, mas perderá algumas que você pode achar que são quase idênticas (ou idênticas). Na verdade, as imagens estenograficamente alteradas parecerão idênticas a você, mas não a um algoritmo de comparação de arquivos. Algum processamento de imagem AI vai fazer bem com estes, mas eu estou supondo que você não quer construir um desses.
Agora, para a péssima notícia: se você quiser procurar por todos os tipos de arquivos "semelhantes", mas não idênticos, como arquivos de texto, PDFs, arquivos ZIP, etc., você precisará encontrar manipuladores específicos para cada um deles. você pode não ficar feliz com os resultados, mesmo depois de muito trabalho.
Por quê? Vamos examinar dois documentos do Microsoft Word como exemplo: um com "Hello World" e o outro "Hello world!" ("W" - > "w" e um "!" Adicionado). Eu diria que você gostaria que eles tivessem uma pontuação muito alta de similaridade. Infelizmente, eles podem ser radicalmente diferentes (> 90% dos bytes) se uma versão for de 1997 e a outra a partir de 2007 ou se a meta-informação for diferente ou o formato tiver mudado. Mas se você tivesse um processo que extraísse apenas o texto dos arquivos, então seria muito mais capaz de lidar com isso, você teria que lidar com as complexidades das diferenças de texto (minúsculas, remover pontuação e branco espaço, e depois comparar?).
Da mesma forma, se você tiver dois arquivos PDF idênticos em termos de como eles aparecem ao abri-los, eles ainda poderão ser > 90% diferentes no nível de byte se houver fontes incorporadas, todas as meta-informações adicionadas e visualizações de imagem incorporadas, enquanto a outra é despojada apenas para as coisas necessárias para impressão e assume que o sistema possui todas as fontes.
Último exemplo: arquivos compactados de qualquer tipo. Para vários algoritmos comuns usados, pequenas alterações no arquivo, principalmente no início do arquivo, podem ter alterações drásticas nos bytes gravados no disco. Então aqui também, você teria que descomprimir o (s) arquivo (s), potencialmente de forma recursiva, e então comparar. E, nesse caso, você deseja reportar a comparação de arquivos compactados ou a comparação de arquivos não compactados das informações contidas? Observe que muitos formatos de arquivo usavam compactação com perdas ou sem perdas em parte ou em todos os arquivos.
Em suma, a menos que você tenha milhares de arquivos em quase formato idêntico , talvez esteja vendo um projeto muito longo.