Como comparar diretórios com arquivos binários

Como comparar diretórios com arquivos binários

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 em saber se há diferenças (e quais arquivos são diferentes). Anteriormente eu usava meld, mas não é possível comparar arquivos binários.

Qual ferramenta de comparação de arquivos pode fazer isso?

OBSERVAÇÃO:Não importa se é uma ferramenta gráfica ou apenas possui uma linha de comando.

Responder1

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 bash2estão apenas no formato foo/.

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

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

Isso mostrará os diferentes arquivos, se houver, ou imprimirá "O conteúdo dos diretórios é idêntico", se for. Para comparar subdiretórios e quaisquer arquivos que eles possam conter, use diff -r. Combine-o com -qpara suprimir a saída de arquivos de texto.

Responder2

Você pode comparar dois arquivos usando cmpo comando

uso:

cmp file1 file2

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

Responder3

Uma comparação completa, mostrando idênticos, diferentes e apenas em uma ou outra pasta ou subpastas:

diff -rqs bar/ foo/

(Você obterá alguma saída para cada arquivo, sem necessidade de 'diretórios idênticos')

informação relacionada