32 votes

Calculer la somme de contrôle MD5 d'un répertoire

Je cherche un moyen rapide de comparer le contenu d'un répertoire. Est-il possible de faire un md5sum (ou une somme de contrôle équivalente) d'un répertoire entier ?

Utiliser Ubuntu Linux

3voto

jmservera Points 3239

Ceci a fonctionné pour moi : (exécutez-le en étant dans le répertoire qui vous intéresse)

md5deep -rl . | awk '{print $1}' | sort -n | md5sum

1voto

gbc Points 11

Vous pouvez créer des sommes MD5 pour chaque fichier, classer ces sommes par ordre alphabétique et les afficher (avec ou sans nouvelles lignes). Puisque le MD5 est cryptographique, il devrait fonctionner parfaitement avec les hachages de hachages.

Il doit y avoir un certain ordre dans les choses, sinon vous obtiendrez des résultats différents pour des répertoires égaux.

Et vous devez tenir compte du fait que l'ajout d'un fichier dans un répertoire peut changer complètement le résultat, même s'il s'agissait juste d'un .directory de .DS_Store fichier.

1voto

vi.su. Points 171

Dans un cas précis, disons que vous voulez copier des fichiers du répertoire 1 au répertoire 2 et que vous voulez vérifier la réussite de la copie en utilisant une comparaison md5.

Premièrement, cd dans le répertoire1 et tapez :

find -type f -exec md5sum "{}" \; > ~/Desktop/md5sum.txt

qui créera un fichier de référence contenant une somme md5 pour chaque fichier du répertoire1. Une fois ceci fait, tout ce que vous avez à faire est de vous rendre dans le répertoire2 et de taper :

md5sum -c ~/Desktop/md5sum.txt

Le programme md5sum extrait chaque chemin du fichier md5sum.txt, calcule la somme md5sum de ce fichier dans le dossier de destination, puis la compare à la somme qu'il a stockée dans le fichier.

Une fois le processus terminé, vous obtiendrez un résumé tel que "Tant et tant de fichiers ne correspondent pas" ou quelque chose de ce genre.

1voto

Jonathan Points 11

J'ai eu besoin de vérifier l'intégrité de sauvegardes/miroirs qui contiennent un grand nombre de fichiers et j'ai fini par écrire un programme en ligne de commande appelé MassHash. Il est écrit en Python. Un lanceur GTK+ est également disponible. Vous pouvez y jeter un coup d'oeil...

http://code.google.com/p/masshash/

0voto

JonM Points 101

Un seul mot :

find directory -exec md5sum {} \; 2>&1 | sort -k 2 | md5sum

Ceci liste tous les fichiers et répertoires et obtient md5sum pour chacun. Puis obtient md5sum pour tout.

Le problème est résolu ici. md5sum n'est pas capable de faire la somme pour un répertoire, mais il nous le dit : md5sum: dir/sub_dir: Is a directory . Nous déplaçons simplement ce message vers une sortie standard.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X