Comparando directorys usando diff

Estoy tratando de comparar dos directorys que contienen files binarys, en AIX 6. Estoy usando diff en lugar de dircmp , ya que bash mantener un formatting de salida consistente entre este y mis serveres Linux, donde dircmp no está disponible .

De acuerdo con la página del man diff ,

Si se especifican los parameters Directorio1 y Directorio2, el command diff compara los files de text que tienen el mismo nombre en ambos directorys. Se enumeran los files binarys que difieren, los subdirectorys comunes y los files que aparecen en un solo directory.

Sin embargo, los files binarys también se están comparando, y sus diferencias salen a stdout, lo que provoca que la pantalla del terminal se inunde de caracteres no imprimibles, incluso modificando el tamaño de mi window (estoy usando pUTTY ). La versión de diff no tiene la opción -q . ¿Hay alguna manera de suprimir esta salida y simplemente informar que los files son diferentes? Preferiría no utilizar rsync -n , ya que debe ejecutarse dos veces, con los parameters hacia y desde el inverso, para encontrar los files que faltan en ambos lados.

Preguntas relacionadas: aquí y aquí

Hay un límite en la cantidad de código portátil que puede escribir sin tener condicionales para ejecutar cosas diferentes en sistemas diferentes. No se sienta mal por usar dircmp si está disponible o diff de GNU si está disponible.

 if type dircmp >/dev/null 2>/dev/null; then dircmp dir1 dir2 else diff -r dir1 dir2 fi 

Si solo quiere saber qué files han cambiado y no le importa enumerar los contenidos, puede filtrar la salida de diff para retener solo las líneas de encabezado. (Advertencia: si tiene nombres de file con líneas nuevas, la salida puede ser inutilizable).

 diff -r dir1 dir2 | grep -v '^[<>0-9]' 

Haga ese grep -v '[^<>]' para mantener la información sobre el range de líneas cambiadas, pero aún filtre el contenido de las líneas modificadas.

Puede canalizar la salida a través de cat -v para que los caracteres no imprimibles se muestren como ^x o Mx , de modo que al less su terminal no esté dañado. Si sabe qué tipo de encabezados están impresos por cada file de diferencia, puede grep para solo ellos, por ejemplo | grep -E 'Only in|differ' | grep -E 'Only in|differ' . (No tengo un AIX para encontrar ejemplos de estos).