Como comparar duas pastas no Linux quando elas são quase iguais?

1

Normalmente eu uso meld para comparar pastas, no entanto, não é útil quando uma pasta tem muitas subpastas, porque eu tenho que clicar em cada subpasta para ver se há alguma diferença.

Existe uma ferramenta para comparar a pasta que exibe apenas as diferenças?

    
por Deqing 20.11.2012 / 02:33

2 respostas

2

Um diff da linha de comando fará isso, e um pequeno grep te dará uma lista de arquivos diferentes, por exemplo:

diff -r dir1 dir2 | grep -e "Only|diff"

Poderia obviamente ser melhorado. . .

    
por 20.11.2012 / 02:40
2

Para uma comparação visual lado a lado, eu gosto de usar dois arquivos de checksums md5 e vimdiff.

Isso tem a vantagem adicional de ser fácil comparar dois diretórios em dois servidores diferentes.

Ele mostra apenas quais arquivos são diferentes, não as diferenças internas.

Para comparar os diretórios / etc / nos servidores sr1 e sr2:

(No primeiro servidor:)

for i in (find /etc/ -print); do md5sum $i; done | awk '{print $2 "\t" $1}' | sort > 
~/tmp/etc-sr1.txt

(no segundo servidor:)

for i in (find /etc/ -print); do md5sum $i; done | awk '{print $2 "\t" $1}' | sort > 
~/tmp/etc-sr2.txt

scp ~/tmp/etc-sr2.txt sr1:tmp/etc-sr2.txt

(On first server:)

vimdiff ~/tmp/etc-sr1.txt ~/tmp/etc-sr2.txt

    
por 20.11.2012 / 04:18