Como posso remover arquivos duplicados em árvores de diretórios separadas?

10

Eu tenho dois diretórios: old/ e new/ . Alguns dos arquivos em old/ são duplicados daqueles em new/ . Alguns simplesmente têm o mesmo nome, e alguns podem até ter conteúdo idêntico, mas nomes diferentes. Não estou interessado no caminho do subdiretório para os arquivos, portanto, apenas um nome de arquivo não qualificado precisa ser considerado na correspondência.

Desejo remover os arquivos duplicados de old/ , para que ele contenha apenas arquivos que não foram encontrados em new/ . Para os casos em que os nomes de arquivos correspondem, mas não o conteúdo, ou vice-versa, eu quero listar isso em algum log.

Alguém encontrou um problema semelhante ou tem uma solução melhor do que hackear um script (perl ou similar) do zero? Um tempo de execução dominado chamando md5sum em cada arquivo é aceitável.

    
por P-Nuts 11.02.2010 / 15:00

2 respostas

7

Claro! Confira FSlint :

FSlint is a utility to find and clean various forms of lint on a filesystem. I.E. unwanted or problematic cruft in your files or file names. For example, one form of lint it finds is duplicate files. It has both GUI and command line modes.

O FSlint é um software livre e de código aberto.

    
por 11.02.2010 / 15:24
8

fdupes - localiza arquivos duplicados em um determinado conjunto de diretórios

fdupes new/ old/

-d para excluir

-N para não perguntar

fdupes -N -d new/ old/
    
por 16.02.2010 / 23:53

Tags