Seguido trabalhado:
diff --brief -r folder1/ folder2/ | grep folder1/ > diff.txt
Eu tenho 2 pastas cujo conteúdo eu quero comparar. Por exemplo eu tenho pasta 1 e pasta 2. Pasta 2 tem um monte de novos arquivos + alguns arquivos mesmo que a pasta 1, mas com algumas alterações no conteúdo desses arquivos. Agora, quero comparar a pasta 1 e a pasta 2 para obter a lista de arquivos da pasta 1 que estão alterados ou ausentes na pasta 2.
Quando executo o seguinte comando:
diff --brief -r folder1/ folder2/ > diff.txt
Também me fornece a lista de novos arquivos da pasta 2.
Eu quero comparar a pasta 1 e a pasta 2 para obter a lista de apenas os arquivos da pasta 1 que estão faltando ou foram alterados na pasta 2.
Como posso conseguir isso?
Por favor, não recomende Meld
, eu já tentei e não ajuda em nada. Eu imaginei, a linha de comando seria mais rápida.
UPDATE
find folder1 -type f -exec diff --brief --from-file=folder2 {} +
não me fornece o caminho completo dos arquivos diferentes / ausentes.
Seguido trabalhado:
diff --brief -r folder1/ folder2/ | grep folder1/ > diff.txt
A opção --from-file
pode ser útil:
$ 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
Então, no seu caso, seria:
diff --brief --from-file=folder2 folder1/*
Há também a opção --unidirectional-new-file
:
--unidirectional-new-file
treat absent first files as empty
Com isso:
$ 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