我有一个包含内容的目录。为了确保复制时不会丢失任何内容,我压缩了目录,现在我有了一个dir.tar.gz
文件。
复制还是很麻烦,文件被损坏了,所以我想知道是否是由于压缩或复制文件造成的,所以我生成了一个crc32
压缩文件。
我无法生成crc32
该目录的原始内容,这意味着我无法使用crc32
它。是否可以?
另外,如果我设法比较这两个数字,如果它们相同,则意味着文件没有受到损害?
答案1
根据您希望校验和的“严格”程度,典型的 Linux 安装至少提供三个选项:
sum
- 这是一个快速而简单的校验和。它不是加密安全的,因此可能会被故意篡改,但它应该能够很好地处理文件复制错误。md5sum
(有时只是md5
)。这会计算文件的基于 MD5 的校验和。这比慢sum
但更有弹性。 MD5算法已经被破解,但这并不容易。sha1sum
这将计算 SHA1 校验和;甚至更慢,但抗篡改能力最强。crc32
这可能并不存在于所有系统上;这是一个 Perl 程序。
在你的用例中我可能会坚持使用sum
.
通过计算传输前和传输后的校验tar.gz
和,您可以合理地保证传输良好(sum
并且crc32
是最弱的,但足够好)。
还有另一种可能性......既然您正在压缩数据,那么您可以尝试在另一端使用gzip -dc file.tar.gz > /dev/null
.如果生成错误,则文件已损坏,否则没有问题。根据文件的大小,这可能会更容易,因为它不需要传输第二个文件。不过,它可能不适合您的用例。