2012-07-04 13 views
15

Me gustaría usar diff para comparar dos directorios para diferentes archivos, usando la opción -q para una salida breve. Sin embargo, la salida está atestada de una gran cantidad de archivos que solo existen en un directorio, pero no en el otro. ¿Puedo forzar diff (o usar otra herramienta) para mostrar solo archivos que difieren Y existen en ambos directorios?Cómo comparar dos directorios usando diff sin tener en cuenta los archivos no existentes?

El comando actual que utilizo es

diff -q <dir1> <dir2> 

Todas las ideas son apreciadas.

Respuesta

15

imprime un montón de líneas como

Only in dir1/blah: blah 

¿verdad? Así que simplemente tírelos con grep.

LC_ALL=C diff ... | grep -v '^Only in' 

El LC_ALL=C es asegurarse de que la norma "Sólo" el mensaje será impreso, no cualquier traducción.

-3

La manera más fácil que he encontrado es utilizar:

diff -N -q <dir1> <dir2> 
+0

lo he intentado, pero la opción '-N' sólo cambia "Sólo" a "Archivos difieren". En realidad, no elimina las líneas "Sólo en". – wisbucky

Cuestiones relacionadas