Cómo diferenciar directorios para diferentes archivos, pero no línea por línea


16

Quiero ver, recursivamente, archivos que son diferentes en dos directorios. Diff puede hacer esto, pero me muestra las diferencias línea por línea, que no quiero. ¿Hay alguna herramienta que haga esto o una forma de hacerlo con Diff (leí la página del manual, no vi nada)?

Respuestas:


29

Qué pasa

diff -rq DIR1 DIR2

o

diff -rqb DIR1 DIR2

-r es recursivo

-q es breve y solo le dirá si los archivos son diferentes (es decir, no mostrará las diferencias línea por línea)

-b ignora los espacios en blanco


1
-b ignora los cambios en el espacio en blanco. Use -q o --brief para la opción breve.
Doug Harris

Y acabo de votar esto. Acabo de probar la breve opción por primera vez. Es una salida muy agradable: muestra no solo qué archivos son diferentes sino que identifica qué archivos existen en un directorio y no en el otro.
Doug Harris

Gracias Doug; Supongo que originalmente tenía mi opción rotada 180 grados. ;) Corregido ahora.
robar

2

Estás buscando la -qopción:

dlamblin$ diff -r a b
diff -r a/a b/a
0a1,2
> 
> 
Only in b: b
dlamblin$ diff -qr a b
Files a/a and b/a differ
Only in b: b

1

Una forma de hacer esto es hacer

diff dir1 dir1| grep "diff "

Seguirá haciendo una comparación línea por línea, pero cada comparación de archivo comienza con "diff dir1 / file dir2 / file", por lo que el agrupamiento "diff" mostrará solo esas líneas (es decir, los archivos que son diferentes).


1

Si es un usuario de emacs, consulte los directorios de ediff. Puede ver las diferencias de archivo y luego profundizar en las diferencias línea por línea si necesita ver por qué son diferentes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.