Vérifier l'intégrité de fichiers

De La Mouche VII


Pour vérifier l'intégrité d'une liste de fichiers, par exemple après une copie, plusieurs solutions sont envisageables.

diff

Si vous disposez des fichiers intègres (par exemple les fichiers sources d'une copie), il est possible d'utiliser l'utilitaire diff :

diff -qr répertoire_source répertoire_destination

Calculer les sommes de contrôle

S'il s'agit de pouvoir vérifier l'intégrité des fichiers à long terme, le mieux est de calculer les sommes de contrôle des fichiers, par exemple :

cd répertoire_source
find -type f -exec md5sum '{}' >>/tmp/SUMS \+

Remplacez md5sum par l'utilitaire de calcul de sommes de contrôle que vous souhaitez (sha1sum, sha512sum…).

Si vous souhaitez exclure de la recherche certains répertoires, utilisez quelque chose comme ça :

find -type f -not \( -wholename '*Musique*' -o -wholename '*Vidéo*' \
  -o -wholename '*SAUVEGARDES*' \) -exec md5sum '{}' >>/tmp/SUMS \+

Pour vérifier les fichiers :

cd répertoire_destination
md5sum --quiet -c /tmp/SUMS

Sous BSD, il existe l'utililtaire mtree pour faire ce travail (disponible dans Debian dans le paquet freebsd-buildutils, sous le nom freebsd-mtree, mais ne reconnaît pas les mots-clefs de calcul des sommes de contrôle).