Question

J'ai un grand répertoire qui ne contient que des éléments CS et Math. Il est plus de 16 Go en taille. Les types sont text, png, pdf et chm. J'ai actuellement deux branches: une branche de mon frère et la mienne. Les fichiers initiaux étaient les mêmes. J'ai besoin de les comparer. J'ai essayé d'utiliser Git, mais le temps de chargement est long.

Quel est le meilleur moyen de comparer deux gros répertoires?

[Solution mixte]

  1. Faites un " ls -R > different_files " dans les deux répertoires [1]
  2. " sdiff < (echo fichier1 | md5deep) < (echo fichier2 | md5deep) " [2]

Qu'en penses-tu? Des inconvénients?

[1] grâce à Paul Tomblin [2] Un grand merci à tous les réplicateurs!

Était-ce utile?

La solution

Comment comparer 2 dossiers sans commandes / produits préexistants:

Créez simplement un programme qui analyse chaque répertoire et crée un hachage de fichier de chaque fichier. Il génère un fichier avec chaque chemin de fichier relatif et le hachage de fichier.

Exécutez ce programme sur les deux dossiers.

Ensuite, il vous suffit de comparer les 2 fichiers de sortie pour voir s’ils sont identiques. Pour comparer ces 2 fichiers, il vous suffit de les charger dans une chaîne et de les comparer.

L’algorithme de hachage que vous utilisez importe peu. Vous pouvez utiliser MD5, SHA, CRC, ... Vous pouvez également utiliser la taille de fichier dans les fichiers de sortie pour réduire les risques de collision.

Comment comparer 2 dossiers avec des commandes / produits préexistants:

Maintenant, si vous voulez juste un programme qui le fasse, utilisez diff -r ou Windiff pour les systèmes Windows.

Autres conseils

Utilisez fslint: site Web . L’une des options de l’outil est & "Copies &"; Selon la description du site: L'une des fonctionnalités les plus couramment utilisées de FSlint est la possibilité de rechercher des fichiers en double. Le moyen le plus simple de supprimer les peluches d’un disque dur consiste à supprimer tous les fichiers en double pouvant exister. Souvent, un utilisateur d'ordinateur peut ne pas savoir qu'il a quatre, cinq ou plus copies de la même chanson dans sa collection de musique sous des noms ou des répertoires différents. Tout type de fichier, qu'il s'agisse de musique, de photos ou de documents de travail, peut facilement être copié et répliqué sur votre ordinateur. Lorsque les doublons sont collectés, ils réduisent l’espace disponible sur le disque dur. La première option de menu proposée par FSlint vous permet de rechercher et de supprimer ces fichiers en double.

Utilisez md5deep pour créer des listes récursives md5sum de chaque fichier de ces répertoires.

Vous pouvez utiliser un outil de comparaison pour comparer les annonces générées.

Essayez-vous simplement de découvrir quels fichiers sont présents dans l’un qui ne se trouve pas dans l’autre, et inversement? Quelques suggestions:

  1. Faites un " ls -R " dans les deux répertoires, rediriger les fichiers et les comparer.

  2. Faites un & "; rsync -n &"; entre eux pour voir ce que rsync devrait copier s'il était autorisé à copier. (-n signifie que ne faites pas le rsync, montrez-vous ce qu'il ferait si vous l'exécutiez sans le -n)

Je voudrais diff ing en comparant la sortie de md5sum * | sort

Cela vous mènera aux fichiers différents / manquants

Je sais que cette question a déjà été posée. Toutefois, si vous n’êtes pas intéressé à écrire vous-même un tel outil, il existe un projet open source qui fonctionne très bien et qui s'appelle tardiff disponible sur sourceforge qui fait exactement ce que vous voulez, et prend même en charge la création automatisée de correctifs (au format tar évidemment) pour prendre en compte les différences.

J'espère que cela vous aidera

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top