一种可能的方法是:
sha1sum path/to/folder/* | sha1sum
如果有一个整个目录树,你可能最好使用find和xargs。一个可能的命令是
find path/to/folder -type f -print0 | xargs -0 sha1sum | sha1sum
编辑:好点,它可能是一个好东西排序的文件列表,所以:
find path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum
最后,如果你还需要考虑权限和空目录:
(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
stat的参数将导致它打印文件的名称,后跟其八进制权限。这两个发现会一个接一个地运行,导致磁盘IO的数量翻倍,第一个查找所有文件名和校验和内容,第二个查找所有文件和目录名称,打印名称和模式。 “文件名和校验和”的列表,后跟“具有权限的名称和目录”将被校验和,以获得较小的校验和。