Compare dos carpetas que tienen muchos archivos dentro del contenido

103

Tiene dos carpetas con aprox. 150 archivos de propiedades java.

En un script de shell, cómo comparar ambas carpetas para ver si hay algún archivo de propiedades nuevo en alguna de ellas y cuáles son las diferencias entre los archivos de propiedades.

La salida debe estar en formato de informe.

vetri02
fuente

Respuestas:

202

Para obtener un resumen de los archivos nuevos / faltantes y qué archivos difieren:

diff -arq folder1 folder2

atrata todos los archivos como texto, rsubdirectorios de búsqueda recursiva, qinformes 'brevemente', solo cuando los archivos difieren

reko_t
fuente
@reko_t ¿hay alguna forma de ejecutar esto a través deJava
Kasun Siyambalapitiya
27

diff -r hará esto, indicándole tanto si se ha agregado o eliminado algún archivo, como qué ha cambiado en los archivos que se han modificado.

John Kugelman
fuente
5

solía

diff -rqyl folder1 folder2 --exclude=node_modules

en mis aplicaciones de nodejs.

Melvin
fuente
-1

El comando Diff en Unix se usa para encontrar las diferencias entre archivos (todos los tipos). Dado que el directorio también es un tipo de archivo, las diferencias entre dos directorios se pueden averiguar fácilmente utilizando los comandos diff. Para más opciones, use man diff en su caja de Unix.

 -b              Ignores trailing blanks  (spaces  and  tabs)
                 and   treats  other  strings  of  blanks  as
                 equivalent.

 -i              Ignores the case of  letters.  For  example,
                 `A' will compare equal to `a'.
 -t              Expands <TAB> characters  in  output  lines.
                 Normal or -c output adds character(s) to the
                 front of each line that may adversely affect
                 the indentation of the original source lines
                 and  make  the  output  lines  difficult  to
                 interpret.  This  option  will  preserve the
                 original source's indentation.

 -w              Ignores all blanks (<SPACE> and <TAB>  char-
                 acters)  and  treats  all  other  strings of
                 blanks   as   equivalent.    For    example,
                 `if ( a == b )'   will   compare   equal  to
                 `if(a==b)'.

Y hay muchos más.

Sachin Chourasiya
fuente