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)?

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


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

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).


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.