HervéRenault.fr

logo de Vim

Voir la différence entre deux répertoires avec find et vimdiff

Imagine que tu as deux versions d'un logiciel, ou d'un site web, et que tu n'as pas d'autre moyen de savoir ce qui a été modifié… Bien sûr, c'est plus facile et plus beau d'utiliser meld (par exemple) mais si on est sur un serveur… Bref, voilà comment faire avec juste des commandes dans un terminal.

find . -type f -ls -not -exec diff -q {} ../autre_répertoire/{} \; -ok vimdiff {} ../autre_répertoire/{} \;

Décortiquons :

Note 1 : ça marche très bien avec gvimdiff (la version graphique de Vim)

Note 2 : avec gvimdiff, le -ok est indispensable parce que gvimdiff rend la main dès qu'il s'est lancé donc avec -exec on empile les fenêtres de gvimdiff pour chaque fichier différent et ça peut faire beaucoup !


Ce premier find ne compare que dans le sens "version de référence" vers "autre version", donc ça n'affichera pas si des fichiers ont été ajoutés dans "l'autre version". Pour voir les fichiers ajoutés dans cette autre version, il suffit de se mettre dans son répertoire et de faire :

find . -type f -exec ls ../répertoire_de_référence/{} \; > /dev/null

Pour chaque fichier ajouté, on verra
ls: impossible d'accéder à '../répertoire_de_référence/./bidule': Aucun fichier ou dossier de ce type