Сравните две папки, в которых много файлов - PullRequest
95 голосов
/ 29 октября 2009

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

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

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

Ответы [ 5 ]

180 голосов
/ 29 октября 2009

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

diff -arq folder1 folder2

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

26 голосов
/ 29 октября 2009

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

4 голосов
/ 14 августа 2014

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

diff -rqyl folder1 folder2 --exclude=node_modules

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

0 голосов
/ 30 октября 2009

Команда Diff в Unix используется для поиска различий между файлами (всех типов). Поскольку каталог также является типом файла, различия между двумя каталогами можно легко определить с помощью команд diff. Для дополнительной опции используйте man diff на вашем Unix Box.

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

и еще много.

0 голосов
/ 29 октября 2009

Не могли бы вы использовать dircmp?

...