Diff Folders sem diferenciar arquivos [duplicado]

2

Eu estou difundindo duas árvores de pastas, mas isso leva muito tempo, pois está diferenciando os próprios arquivos. Eu só quero saber quais pastas / arquivos estão em uma árvore e não em outra.

Qual é a melhor maneira de fazer isso?

    
por Jonah 23.07.2010 / 21:09

1 resposta

7

Use find para listar os arquivos em cada árvore, classificá-los e, em seguida, use diff ou comm para comparação. O pouco conhecido comando comm é uma ferramenta de comparação de arquivos especializada que apenas distingue as linhas que aparecem apenas no primeiro arquivo, as linhas que aparecem apenas no segundo arquivo e as linhas que aparecem nos dois arquivos.

(cd /some/dir1 && find . | sort >/tmp/dir1.find)
(cd /where/dir2 && find . | sort >/tmp/dir2.find)
# Show the files that are in dir1 but not in dir2
comm -23 /tmp/dir1.find /tmp/dir2.find
# Show the files that are in dir2 but not in dir1
comm -13 /tmp/dir1.find /tmp/dir2.find
    
por 23.07.2010 / 22:12