У меня есть 2 папки, содержимое которых я хочу сравнить. Например, у меня есть папка 1 и папка 2. В папке 2 есть много новых файлов + некоторые файлы, такие как папка 1, но с некоторыми изменениями в содержимом этих файлов. Теперь я хочу сравнить папку 1 и папку 2, чтобы получить список файлов папки 1, которые были изменены или отсутствуют в папке 2.
Когда я запускаю следующую команду:
diff --brief -r folder1/ folder2/ > diff.txt
[d2 ] Он также дает мне список новых файлов в папке 2. Я хочу сравнить папку 1 и папку 2, чтобы получить список только тех файлов папки 1, которые отсутствуют или изменены в папке 2.
Как я могу это достичь?
Пожалуйста, не рекомендуем Meld, я уже пробовал, и это не поможет. Я понял, командная строка будет быстрее.
UPDATE
find folder1 -type f -exec diff --brief --from-file=folder2 {} +
не дает мне полный путь к файлу с разными / отсутствующими файлами.
Опция --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