Localiza todas as pastas em um diretório com o mesmo conteúdo

10

No Ubuntu, existe algum para encontrar pastas duplicadas em um diretório (ou seja, pastas com o mesmo conteúdo)? Eu acho que já existem algumas ferramentas de linha de comando disponíveis para encontrar arquivos duplicados (como fdupes), mas eu quero encontrar pastas duplicadas em vez disso. Ou seja, encontre pastas que correspondam aos conteúdos dos arquivos que contêm (embora os nomes de arquivo e outros metadados possam diferir).

    
por Anderson Green 12.12.2012 / 22:48

1 resposta

5
#!/bin/bash
shopt -s dotglob

for file in "$1"/*; do [[ -f "$file" ]] && d1+=( "$(md5sum < "$file")" ); done
for file in "$2"/*; do [[ -f "$file" ]] && d2+=( "$(md5sum < "$file")" ); done 

[[ "$(sort <<< "${d1[*]}")" == "$(sort <<< "${d2[*]}")" ]] && echo "Same" || echo "Different"

Você pode ver isso em ação aqui:

$ mkdir 1 2
$ ./comparedirs 1 2
Same
$ cat > 1/1 <<< foo
$ cat > 2/1 <<< foo
$ ./comparedirs 1 2
Same
$ cat > 2/1 <<< bar
$ ./comparedirs 1 2
Different
    
por 12.12.2012 / 23:06