web-dev-qa-db-fra.com

Comment comparer deux arborescences sources sous Linux?

J'ai deux répertoires contenant les fichiers source d'un projet dont j'ai hérité avec peu de documentation. Comment comparer les deux répertoires pour voir quelles sont les différences. Merci.

43
freakwincy

Vous pouvez essayer MELD: http://meld.sourceforge.net/ qui est un merveilleux outil de diff visuel ;-)

36
manatlan

Essaye ça:

diff -Naur dir1/ dir2/
  • L'option -u Rend la sortie un peu plus facile à lire.
  • L'option -r Revient dans tous les sous-répertoires
  • Les options -N Et -a Ne sont vraiment nécessaires que si vous souhaitez créer un fichier patch.
54
jcrossley3
diff -u -r dirA dirB

Vous montrera un diff récursif unifié entre les fichiers en dirA et dirB

26
Bert Huijben

vous pouvez utiliser la commande diff dans le shell. Ou installez un outil comme kdiff

6
Decio Lira

La commande diff pour comparer les répertoires me disait toujours que je n'avais pas de différences, quand je savais qu'il y avait des différences.

Au lieu d'utiliser diff directement, j'ai utilisé une liste triée de md5sums, puis j'ai comparé ces fichiers avec diff:

find /path1/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path1.log
find /path2/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path2.log
gvimdiff path1.log path2.log

Si la première partie du chemin provoque des maux de tête, modifiez-la. Sélectionnez la fenêtre Path1 et tapez:

:%s|path1|path2|g

Cela remplacera toutes les instances de path1 par path2 dans le premier fichier, et maintenant votre diff ne devrait montrer que des différences.

1
nikc