Diff fichiers présents dans deux répertoires différents
J'ai deux répertoires avec la même liste de fichiers. J'ai besoin de comparer tous les fichiers présents dans les répertoires à l'aide de la diff
de commande. Est-il une simple option de ligne de commande pour le faire, ou ce que je dois écrire un script shell pour obtenir la liste des fichiers, puis itérer à travers eux?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
diff
de commande pour que:Ce sera de sortie récursive de diff qui ignorer les espaces, avec un unifiée contexte:
diff
commande en téléchargeant le utilitaires GNU pour Win32.-b
ignore les changements d'espaces et-u
donne 3 lignes de tampon.diff -rub folder1/ folder2/
-bur
serait facile de s'en souvenir si vous avez vécu dans un climat froid.Si vous êtes uniquement intéressé à voir les fichiers qui diffèrent, vous pouvez utiliser:
Option "q" affichera uniquement les fichiers qui diffèrent, mais pas le contenu qui diffèrent, et "trier" organisera une sortie par ordre alphabétique.
-q
option de l'homme!! Je vous aime.Diff a une option
-r
qui est censé le faire.diff -r dir1 dir2
diff
ne peuvent pas seulement de comparer deux fichiers, il peut, à l'aide de la-r
option, à pied tout le répertoire des arbres, de manière récursive, à la vérification des différences entre les sous-répertoires et les fichiers qui se produisent à des points comparables dans chaque arbre.Si c'est GNU diff alors vous devriez juste être capable de le diriger vers les deux répertoires et utilisez l'option-r.
Sinon, essayez d'utiliser
N. B. Comme indiqué par Dennis dans la section des commentaires, vous n'avez pas besoin de faire de la substitution de commande sur la ls. J'ai fait cela depuis si longtemps que je suis plutôt de faire cela sur le pilote automatique et la substitution de la commande j'ai besoin d'obtenir ma liste de fichiers à des fins de comparaison.
Aussi j'ai oublié d'ajouter que je ne '\ls' pour désactiver temporairement mon alias de la commande ls pour GNU ls de sorte que je perds la couleur de mise en forme des informations à partir de la liste retournée par GNU ls.
ls
:for i in ./dir1/*
Voici un script pour afficher les différences entre les fichiers dans les deux dossiers. Il fonctionne de manière récursive. Changement dir1 et dir2.
Essayez ceci: