【问题标题】:Calculate checksum for a directory计算目录的校验和
【发布时间】:2010-10-21 11:14:08
【问题描述】:

我需要计算一个有问题的目录的校验和。

它应该为这个目录返回一个数字,而不是它里面的每个文件。

你能帮帮我吗?

谢谢。

【问题讨论】:

  • 你要校验什么?目录信息(文件名、inode 编号),或者文件元信息(修改时间等),或者文件内容还是什么?您希望目录在什么情况下具有不同的校验和?
  • 计算每个文件、元数据的校验和并对所有数据进行异或运算。如有必要,递归执行此操作。
  • @Paul,我需要确保没有人更改相关目录中的文件。
  • 那么只需对每个文件进行校验和对结果求和?您对“更改文件”的定义是否包括对权限、创建/修改日期、所有者/组等的更改?
  • 是的。我想,我也可以只取所有结果的总和。我正在玩“cat”命令,但是现在没有成功。我说:“find ./crc_test/ -type f | cat | crc32”,但我不工作。

标签: linux directory checksum


【解决方案1】:

查看md5deep。来自其homepage

md5deep 是一组程序,用于计算任意数量文件的 MD5、SHA-1、SHA-256、Tiger 或 Whirlpool 消息摘要。

我自己没有使用过它,但据我所知,它几乎是来自GNU Coreutils 的 md5sum、sha256sum 和类似校验和工具的多文件版本的集合。

【讨论】:

    【解决方案2】:

    您可以使用tar 来执行此操作。 tar -c dir/ | md5sum -b 之类的东西,尽管您可能需要使用 tar 的选项,因此它不包括访问时间(如果有人访问该目录中的文件,这会弄乱校验和,即使没有修改任何文件) .

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 2018-06-03
      • 2010-12-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      相关资源
      最近更新 更多