Сравните две папки, в которых много файлов.

103

Есть две папки с прибл. 150 файлов свойств Java.

В сценарии оболочки, как сравнить обе папки, чтобы увидеть, есть ли в любой из них новый файл свойств и каковы различия между файлами свойств.

Вывод должен быть в формате отчета.

vetri02
источник

Ответы:

202

Чтобы получить сводную информацию о новых / отсутствующих файлах и о том, какие файлы отличаются:

diff -arq folder1 folder2

aобрабатывает все файлы как текст, в rподкаталогах рекурсивный поиск, qсообщает «кратко», только если файлы различаются

reko_t
источник
@reko_t есть ли способ запустить это черезJava
Касун Сиямбалапития
27

diff -r сделает это, сообщая вам обоим, были ли добавлены или удалены какие-либо файлы, и что изменилось в файлах, которые были изменены.

Джон Кугельман
источник
5

я использовал

diff -rqyl folder1 folder2 --exclude=node_modules

в моих приложениях nodejs.

Мелвин
источник
-1

Команда Diff в Unix используется для поиска различий между файлами (всех типов). Поскольку каталог также является типом файла, различия между двумя каталогами можно легко определить с помощью команд diff. Для получения дополнительных опций используйте команду man diff в вашем 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)'.

и многое другое.

Сачин Чурасия
источник