У меня есть 2 папки, содержимое которых я хочу сравнить. Например, у меня есть папка 1 и папка 2. В папке 2 есть много новых файлов + некоторые файлы, такие же, как в папке 1, но с некоторыми изменениями в содержимом этих файлов. Теперь я хочу сравнить папку 1 и папку 2, чтобы получить список файлов папки 1, которые изменены или отсутствуют в папке 2.
Когда я запускаю следующую команду:
diff --brief -r folder1/ folder2/ > diff.txt
It также дает мне список новых файлов папки 2.
Я хочу сравнить папку 1 и папку 2, чтобы получить список только тех файлов папки 1, которые отсутствуют или изменены в папке 2.
Как мне этого добиться?
Пожалуйста, не рекомендую Meld
, я уже пробовал, и это не поможет. Я подумал, командная строка будет быстрее.
ОБНОВЛЕНИЕ
find folder1 -type f -exec diff --brief --from-file=folder2 {} +
не дает мне полный путь к разным / отсутствующим файлам.
Следующее работало:
diff --brief -r folder1/ folder2/ | grep folder1/ > diff.txt
--from-file
опция могла бы быть полезной:
$ diff -r --brief foo bar
Files foo/a and bar/a differ
Files foo/b and bar/b differ
Files foo/c and bar/c differ
Only in bar: d
$ diff --brief --from-file=bar foo/*
Files bar/a and foo/a differ
Files bar/b and foo/b differ
Files bar/c and foo/c differ
Так, в Вашем случае, это было бы:
diff --brief --from-file=folder2 folder1/*
существует также --unidirectional-new-file
опция:
--unidirectional-new-file
treat absent first files as empty
С ним:
$ diff /tmp/foo/ /tmp/bar -r --brief --unidirectional-new-file
Files /tmp/foo/a and /tmp/bar/a differ
Files /tmp/foo/b and /tmp/bar/b differ
Files /tmp/foo/c and /tmp/bar/c differ