Como apagar arquivos duplicados de duas pastas?

2

Estou apenas começando a lidar com o Linux Terminal, mas ainda cometo erros:

Eu recentemente erroneamente consegui copiar todos os arquivos contidos em um diretório (incluindo todos os subdiretórios) em outro diretório.

Existe alguma maneira fácil de identificar todos os arquivos contidos na pasta original (incluindo subdiretórios) e excluir cada arquivo de outro diretório? por exemplo: A pasta / fonte contém os arquivos file1 e file2 e um sub-diretório / source / sub contém os arquivos file3 e file4.

Pasta / destino contém os arquivos arquivo1, arquivo2, arquivo3, arquivo4, arquivo5 e arquivo6.

Como posso analisar / fonte e seus subdiretórios para arquivos e excluir apenas esses arquivos de / destination para que / destination é deixado contendo apenas file5 e file6?

Muito obrigado.

    
por Malk 06.02.2015 / 10:09

1 resposta

1

Você poderia percorrer cada arquivo manualmente, lendo a partir de uma lista (talvez a saída de ls -lR source ou find source -type f ) e excluindo a duplicata da pasta de destino ...

Ou use find e md5sum para verificar arquivos realmente idênticos (não apenas arquivos com nomes semelhantes), comparando uma saída md5sum classificada para cada pasta, encontrando linhas duplicadas e excluindo os arquivos duplicados ofensivos de um pasta.

Ou (provavelmente melhor ) você poderia usar um programa de busca de arquivos duplicados, como fdupes ou fslint , ambos podem encontrar arquivos duplicados, um deles até possui uma boa GUI. Apenas certifique-se de apontá-los apenas para as pastas de "origem" e "destino" desejadas.

Veja essas outras perguntas para algumas opções (alterando a opção "mover para outro lugar" para "excluir"):

por 06.02.2015 / 11:01