Como comparar diretórios com arquivos binários

7

Gostaria de comparar diretórios com arquivos binários. Na verdade, não estou interessado em saber quais são as diferenças reais entre os arquivos, mas saber se há diferenças (e quais arquivos são diferentes). Anteriormente, usei meld , mas não é possível comparar arquivos binários.

Por favor me avise sobre o que essas ferramentas de comparação de arquivos podem fazer isso.

NOTA: Não importa se é uma ferramenta gráfica ou se tem apenas uma linha de comando.

    
por Loom 18.11.2014 / 12:51

2 respostas

11

Isso pode ser feito facilmente com diff . Por exemplo:

$ ls -l foo/
total 2132
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:13 bash2
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:13 ls

$ ls -l bar/
total 1124
-rwxr-xr-x 1 terdon terdon 1029624 Nov 18 13:14 bash
-rwxr-xr-x 1 terdon terdon  118280 Nov 18 13:14 ls

$ diff bar/ foo/
Only in foo/: bash2

No exemplo acima, os diretórios foo/ e bar/ contêm arquivos binários e bash2 está apenas em foo/ .

Então, você pode executar algo simples como:

$ diff bar/ foo/ && echo "The directories' contents are identical"

Isso mostrará os diferentes arquivos, se houver algum, ou imprimirá o conteúdo "Os diretórios" são idênticos "se forem. Para comparar subdiretórios e quaisquer arquivos que eles possam conter, use diff -r . Combine-o com -q para suprimir a saída de arquivos de texto.

    
por 18.11.2014 / 13:17
0

Você pode comparar dois arquivos usando o comando cmp

uso:

cmp file1 file2

Ele dará o número de bytes de diferença e o número da linha

    
por 11.04.2017 / 14:40