Como remover diretórios duplicados que contêm os mesmos arquivos?

1

Eu tenho vários diretórios que contêm arquivos de texto. Alguns desses diretórios são nomeados de maneira diferente, mas contêm os mesmos arquivos de texto. Como faço para remover todos os diretórios duplicados?

    
por Sean Nolan 17.08.2017 / 18:47

2 respostas

1

$ rmlint --types duplicatedirs <path>

Isso listará diretórios duplicados e criará um script de shell (rmlint.sh) que você pode executar opcionalmente para excluí-los.

Consulte o guia do usuário para obter instruções de instalação, etc.

    
por 24.08.2017 / 12:59
0

Tente primeiro comparar os arquivos byte by byte e se encontrar o mesmo arquivo, mova os arquivos duplicados para um caminho de backup.

find /path/to/src -type f -exec cmp -s '{}' "/path/to/destA/{}" \; -exec echo mv -v "/path/to/destA/{}" "/path/to/backup/" \;
  • Ps, você precisa executar acima para todos os seus /path/to/destS . Por favor, note que, se no caso você tivesse o mesmo nome de arquivos em vários destS com o comando Mover para /path/to/backup/ , esses serão substituídos pelo mesmo nome de arquivo.
  • Ps, remova echo do comando para executar o movimento real.

Em seguida, execute para executar outra pesquisa para excluir diretórios vazios.

find -type d -empty #-delete
  • Ps, remova o # do comando para executar a exclusão real quando você garantir a exibição dos diretórios vazios e o esperado.

Mais tarde, você pode verificar novamente se os arquivos foram movidos para o backup /path/to/backup/ path e, depois de confirmar com você mesmo, você poderá excluí-los também com o seu desejo.

    
por 17.08.2017 / 19:50