Como diferenciar diretórios para arquivos diferentes, mas não linha por linha

16

Quero ver, recursivamente, arquivos diferentes em dois diretórios. Diff pode fazer isso, mas mostra as diferenças linha a linha, que eu não quero. Existe uma ferramenta que faz isso ou uma maneira de fazer isso com Diff (eu li a página de manual, não vi nada)?

user13743
fonte

Respostas:

29

A respeito

diff -rq DIR1 DIR2

ou

diff -rqb DIR1 DIR2

-r é recursivo

-q é breve, e apenas informa se os arquivos são diferentes (ou seja, não mostra as diferenças de linha por linha)

-b ignora o espaço em branco

roubar
fonte
11
-b ignora as alterações de espaço em branco. Use -q ou --brief para a breve opção.
9339 Doug Harris
E acabei de votar nisso. Eu apenas tentei a breve opção pela primeira vez. É uma saída muito boa - mostra não apenas quais arquivos são diferentes, mas identifica quais arquivos existem em um diretório e não no outro.
Doug Harris
Obrigado Doug; Eu acho que originalmente tive minha opção girada 180 graus. ;) Corrigido agora.
Rob
2

Você está procurando a -qopção:

dlamblin$ diff -r a b
diff -r a/a b/a
0a1,2
> 
> 
Only in b: b
dlamblin$ diff -qr a b
Files a/a and b/a differ
Only in b: b
dlamblin
fonte
1

Uma maneira de fazer isso é fazer

diff dir1 dir1| grep "diff "

Ele ainda fará uma comparação linha por linha, mas cada comparação de arquivo começa com "diff dir1 / arquivo dir2 / arquivo", de modo que grepping "diff" mostrará apenas essas linhas (ou seja, os arquivos que são diferentes).

user13743
fonte
1

Se você é um usuário do emacs, consulte os diretórios ediff. Você pode ver as diferenças de arquivo e, em seguida, detalhar as diferenças linha por linha, se precisar ver por que elas são diferentes.

Doug Harris
fonte