Eu quero gerar uma lista de arquivos que possuem:
- Mesmo nome
- Conteúdo diferente
em um diretório (incluindo todos os diretórios e conteúdo filhos).
Como fazer? Bash, perl, está tudo bem.
Portanto, dois arquivos com o mesmo nome e o mesmo conteúdo não devem aparecer.
Respostas:
Atualização: corrigido um erro de digitação no script: alterado
print $NF
paraprint $3
; também arrumou as coisas e acrescentou alguns comentários.Supondo que os nomes dos arquivos não contenham
\n
, o seguinte imprime uma lista classificada que quebra (como em: quebras de controle de seção ) como únicafile name
, únicamd5sum
e mostra o grupo correspondente de caminhos de arquivo.Saída mostrando apenas nomes de arquivos com vários
md5
sSaída mostrando todos os arquivos com o mesmo nome.
fonte
Aqui está um script Perl. Execute-o no diretório na parte superior da árvore que você deseja pesquisar. O script depende
find
emd5
, mas o último pode ser substituído porsha1
,sum
ou qualquer outro programa de hash de arquivo que aceite entrada no stdin e produz um hash no stdout.fonte
finddup esta ferramenta também pode ajudá-lo a listar os arquivos com o mesmo nome ou conteúdo.
fonte
Para aqueles que querem ver apenas uma lista de nomes de arquivos, aqui é a parte relevante do Peter.O 's resposta :
} '
Não preciso do md5sums porque uso
fslint-gui
antes do script para limpar todas as duplicatas.fonte