Porównaj dwa foldery, które zawierają wiele plików

103

Miej dwa foldery z ok. 150 plików właściwości Java.

W skrypcie powłoki: jak porównać oba foldery, aby sprawdzić, czy w którymkolwiek z nich jest nowy plik właściwości i jakie są różnice między plikami właściwości.

Dane wyjściowe powinny być w formacie raportu.

vetri02
źródło

Odpowiedzi:

202

Aby uzyskać podsumowanie nowych / brakujących plików i które pliki się różnią:

diff -arq folder1 folder2

atraktuje wszystkie pliki jako tekst, rrekurencyjnie przeszukiwane podkatalogi, qraportuje „na krótko”, tylko gdy pliki się różnią

reko_t
źródło
@reko_t Czy jest jakikolwiek sposób, aby to uruchomićJava
Kasun Siyambalapitiya
27

diff -r zrobi to, informując was obojga, czy jakieś pliki zostały dodane lub usunięte oraz co się zmieniło w plikach, które zostały zmodyfikowane.

John Kugelman
źródło
5

użyłem

diff -rqyl folder1 folder2 --exclude=node_modules

w moich aplikacjach nodejs.

Melvin
źródło
0

Czy mógłbyś użyć dircmp?

zestaw narzędzi
źródło
-1

Polecenie Diff w systemie Unix służy do znajdowania różnic między plikami (wszystkie typy). Ponieważ katalog jest również typem pliku, różnice między dwoma katalogami można łatwo znaleźć za pomocą poleceń diff. Aby uzyskać więcej opcji, użyj man diff na swoim uniksowym pudełku.

 -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)'.

i jest ich o wiele więcej.

Sachin Chourasiya
źródło