Compare duas pastas com muitos arquivos dentro de seu conteúdo

103

Possui duas pastas com aprox. 150 arquivos de propriedade java.

Em um script de shell, como comparar as duas pastas para ver se há algum novo arquivo de propriedade em qualquer uma delas e quais são as diferenças entre os arquivos de propriedade.

A saída deve estar em formato de relatório.

vetri02
fonte

Respostas:

202

Para obter um resumo dos arquivos novos / ausentes e quais arquivos são diferentes:

diff -arq folder1 folder2

atrata todos os arquivos como texto, rsubdiretórios pesquisados ​​recursivamente, qrelata 'brevemente', apenas quando os arquivos são diferentes

reko_t
fonte
@reko_t existe alguma maneira de executar isso viaJava
Kasun Siyambalapitiya
27

diff -r fará isso, informando se algum arquivo foi adicionado ou excluído e o que foi alterado nos arquivos que foram modificados.

John Kugelman
fonte
5

eu usei

diff -rqyl folder1 folder2 --exclude=node_modules

em meus aplicativos nodejs.

Melvin
fonte
0

Você poderia usar dircmp?

kit de ferramentas
fonte
-1

O comando Diff no Unix é usado para encontrar as diferenças entre os arquivos (todos os tipos). Visto que o diretório também é um tipo de arquivo, as diferenças entre dois diretórios podem ser facilmente descobertas usando comandos diff. Para mais opções, use man diff em sua caixa 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)'.

E há muito mais.

Sachin Chourasiya
fonte