计算目录的MD5校验和

puf*_*ish 31 ubuntu md5

我正在寻找一种比较目录内容的快速方法。是否可以对整个目录进行 md5sum(或等效校验和)?

使用 Ubuntu Linux

Sha*_*den 38

当然 - md5sum directory/*

如果您需要更灵活的东西(例如,用于目录递归或哈希比较),请尝试 md5deep。

apt-get install md5deep
md5deep -r directory
Run Code Online (Sandbox Code Playgroud)

要比较一个目录结构,你可以给它一个哈希列表来比较:

md5deep -r -s /directory1 > dir1hashes
md5deep -r -X dir1hashes /directory2
Run Code Online (Sandbox Code Playgroud)

这将输出目录 2 中与目录 1 不匹配的所有文件。

这不会显示已从目录 1 中删除的文件或已添加到目录 2 中的文件。

  • 要获得确定性顺序,请使用“-j0”禁用多线程(请参阅手册页)。 (2认同)

Jak*_*lus 28

如果您想查看两个目录之间有什么不同(如果有的话),rsync 将是一个不错的选择。

rsync --archive --dry-run --checksum --verbose /source/directory/ /destination/directory
Run Code Online (Sandbox Code Playgroud)

这将列出所有不同的文件。

  • `diff -qr /source/directory/ /destination/directory/` 也会显示不同的文件。 (2认同)

小智 13

我想我以前用这个答案回答过这个问题:

find . -xtype f -print0 | xargs -0 sha1sum | cut -b-40 | sort | sha1sum
Run Code Online (Sandbox Code Playgroud)

给出: b1a5b654afee985d5daccd42d41e19b2877d66b1

这个想法是你对所有文件进行散列,每行一个散列,对它们进行排序并散列产生单个散列。这不取决于文件的名称。


Hub*_*rio 5

CFV应用是非常有用的,它不仅可以检查并创建MD5校验和,它也可以做CRC32,SHA1,激流,PAR,PAR2。

为当前目录中的所有文件创建一个 CRC32 校验和文件:

CFV-C

为当前目录中的所有文件创建一个 MD5 校验和文件:

cfv -C -t md5 -f "当前目录.md5sums"

要为每个子目录创建单独的校验和文件:

cfv -C -r

要创建包含所有子目录中的文件的“超级”校验和文件:

cfv -C -rr