Estou tentando encontrar diff
s entre todos os arquivos com o mesmo nome em duas cópias de um diretório (por exemplo, um trabalho e um backup). Por exemplo, eu posso diff
dois arquivos com o mesmo nome em ambos:
> diff d1/f.cpp d2/f.cpp
ou posso encontrar diferenças entre os diretórios:
> diff d1 d2
mas como posso encontrar diferenças apenas entre os *.cpp
arquivos?
> diff d1/*.cpp d2/*.cpp
parece não funcionar (por razões óbvias).
[Provavelmente é fácil resolver com loops, mas estou tentando encontrar uma maneira mais elegante]
echo "${file##*/}";
anterior aodiff
comando, para que se saiba quais arquivos estão realmente sendo comparados. Além disso, como mencionado na resposta de @ Rinzwind, esse método não cobre o caso em que a lista de arquivos não é exatamente a mesma nos dois diretórios.diff -qr {DIR1} {DIR2}
faz todos os arquivos nos dois diretórios.q
mostra apenas diferençasr
faz recursivo. Deixe de fora se você não precisar dissoVocê não pode dizer
diff
diretamente para usar curingas, mas pode adicionar:excluir arquivos. Portanto, se você deseja apenas
*.cpp
o método mais fácil, crie um arquivo de texto que lista todos os arquivos que não são*.cpp
. Você pode fazer isso com o seguinte comando:ls -I "*.cpp" > excluded_files
onde o-I "*.cpp"
argumento ignora todos os arquivos .cpp. Observe que as aspas são necessárias.fonte
Algum tempo depois de fazer a pergunta, descobri o
meld
utilitário diff e o uso desde então. Este é um ótimo programa baseado em GUI que torna a comparação e a mesclagem entre arquivos e diretório uma tarefa muito fácil. Faz comparações de duas ou três vias.Especificamente, ele responde à minha pergunta original, pois mostra uma comparação com código de cores do conteúdo do diretório e permite comparar arquivos específicos clicando duas vezes no nome do arquivo.
Se é necessário mais do que uma comparação de três vias, também
gvimdiff
(com base novim
editor) também é ótimo, oferecendo essa funcionalidade.fonte
Existe uma solução leve para isso:
diff dir1 dir2 | vim -R -
no shellEle adicionará dobras e comparação lado a lado para arquivos alterados.
fonte