Comment différencier les répertoires de différents fichiers, mais pas ligne par ligne


16

Je veux voir, récursivement, des fichiers différents dans deux répertoires. Diff peut le faire, mais cela me montre les différences ligne par ligne, ce que je ne veux pas. Existe-t-il un outil qui fait cela, ou un moyen de le faire avec Diff (j'ai lu la page de manuel, je n'ai rien vu)?

Réponses:


29

Qu'en est-il de

diff -rq DIR1 DIR2

ou

diff -rqb DIR1 DIR2

-r est récursif

-q est pour bref, et vous dira simplement si les fichiers sont différents (c'est-à-dire, il ne montrera pas les différences ligne par ligne)

-b ignore les espaces blancs


1
-b ignore les changements d'espace blanc. Utilisez -q ou --brief pour l'option brève.
Doug Harris

Et je viens de voter pour cela. J'ai juste essayé la brève option pour la première fois. C'est une sortie très agréable - montre non seulement quels fichiers sont différents, mais identifie quels fichiers existent dans un répertoire et pas dans l'autre.
Doug Harris

Merci Doug; Je suppose que j'avais à l'origine fait pivoter mon option de 180 degrés. ;) Corrigé maintenant.
voler

2

Vous recherchez l' -qoption:

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

Une façon de le faire est de faire

diff dir1 dir1| grep "diff "

Il fera toujours une comparaison ligne par ligne, mais chaque comparaison de fichiers commence par "diff dir1 / file dir2 / file", donc "diff" ne montrera que ces lignes (c'est-à-dire les fichiers qui sont différents).


1

Si vous êtes un utilisateur emacs, consultez les répertoires ediff. Vous pouvez voir les différences de fichier, puis explorer les différences ligne par ligne si vous avez besoin de voir pourquoi elles sont différentes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.