
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 bash2
estã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 -q
para suprimir a saída de arquivos de texto.
Responder2
Você pode comparar dois arquivos usando cmp
o 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')