Une manière possible serait :
sha1sum path/to/folder/* | sha1sum
S'il existe une arborescence complète de répertoires, vous feriez probablement mieux d'utiliser find et xargs. Une commande possible serait
find path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum
Et, enfin, si vous devez également tenir compte des permissions et des répertoires vides :
(find path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum;
find path/to/folder \( -type f -o -type d \) -print0 | sort -z | \
xargs -0 stat -c '%n %a') \
| sha1sum
Les arguments de stat
le fera imprimer le nom du fichier, suivi de ses permissions octales. Les deux recherches s'exécuteront l'une après l'autre, provoquant le double de la quantité d'E/S sur le disque, la première trouvant tous les noms de fichiers et faisant la somme de contrôle du contenu, la seconde trouvant tous les noms de fichiers et de répertoires, le nom d'impression et le mode. La liste des "noms de fichiers et sommes de contrôle", suivie de "noms et répertoires, avec autorisations" sera alors contrôlée, pour une somme de contrôle plus petite.
-
Utilisez un outil de détection d'intrusion dans le système de fichiers comme aide.
-
hacher une boule tar du répertoire :
tar cvf - /path/to/folder | sha1sum
-
Codez quelque chose vous-même, comme le oneliner de vatine :
find /path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum