Un modo possibile potrebbe essere:
sha1sum path/to/folder/* | sha1sum
Se c'è un intero albero di directory, probabilmente stai meglio usando find e xargs. Un possibile comando potrebbe essere
find path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum
E, infine, se devi tenere conto anche dei permessi e delle directory vuote:
(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
Gli argomenti di stat
farà stampare il nome del file, seguito dai suoi permessi ottali. Le due ricerche verranno eseguite una dopo l'altra, causando il doppio della quantità di IO su disco, la prima trovando tutti i nomi di file e sommando il contenuto, la seconda trovando tutti i nomi di file e directory, stampando il nome e la modalità. L'elenco di "nomi di file e checksum", seguito da "nomi e directory, con autorizzazioni" verrà quindi sommato al checksum, per un checksum più piccolo.
-
Utilizza uno strumento di rilevamento delle intrusioni nel file system come aide.
-
hash un tar ball della directory:
tar cvf - /path/to/folder | sha1sum
-
Codifica tu stesso qualcosa, come l'oneliner di vatine:
find /path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum