Cómo comparar directorios con archivos binarios

Cómo comparar directorios con archivos binarios

Me gustaría comparar directorios con archivos binarios. En realidad, no estoy interesado en cuáles son las diferencias reales entre archivos, sino en saber si hay una diferencia (y qué archivos difieren). Anteriormente usaba meld, pero no puede comparar archivos binarios.

¿Qué herramienta de comparación de archivos puede hacer esto?

NOTA:No importa si es una herramienta gráfica o simplemente tiene una línea de comandos.

Respuesta1

Esto se puede hacer fácilmente con diff. Por ejemplo:

$ 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

En el ejemplo anterior, los directorios foo/y bar/contienen archivos binarios y bash2solo están en formato foo/.

Entonces, podrías ejecutar algo simple como:

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

Eso le mostrará los diferentes archivos, si los hay, o imprimirá "El contenido de los directorios es idéntico" si lo son. Para comparar subdirectorios y cualquier archivo que puedan contener, utilice diff -r. Combínelo con -qpara suprimir la salida de archivos de texto.

Respuesta2

Puedes comparar dos archivos usando cmpel comando

uso:

cmp file1 file2

Le dará el número de bytes de diferencia y el número de línea.

Respuesta3

Una comparativa completa, mostrando idénticos, diferentes y sólo en una u otra carpeta o subcarpetas:

diff -rqs bar/ foo/

(Obtendrá algunos resultados para cada archivo, no es necesario que los 'directorios sean idénticos')

información relacionada