MD5sum 是一个常用的哈希函数,用于生成文件的 MD5 摘要。通过比较文件的 MD5 摘要,可以检查文件是否完整。以下是使用 md5sum 命令检查文件完整性的步骤:
1. 生成 MD5 摘要文件
首先,生成原文件的 MD5 摘要文件。假设原文件名为 yourfile.txt,执行以下命令:
md5sum yourfile.txt > yourfile.md5
这将在同一目录下生成一个名为 yourfile.md5 的文件,其中包含原文件的 MD5 摘要。
2. 检查文件完整性
2.1. 用自带的命令检查,显示文件完整。
要检查原文件是否完整,可以使用以下命令:
md5sum -c yourfile.md5
如果原文件没有被篡改,命令会输出类似以下的信息:
yourfile.txt: OK
如果文件被篡改,输出可能会是:
yourfile.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
在这种情况下,说明文件已经被修改,其完整性可能受到破坏。
2.2. 如果是从网上找到到代码进行检查就会显示不完整。
import hashlib
import os
def calculate_md5(file_path):
"""计算文件的 MD5 哈希值"""
md5 = hashlib.md5()
with open(file_path, 'rb') as file:
while chunk := file.read(8192):
md5.update(chunk)
return md5.hexdigest()
def check_integrity(file_path, expected_md5):
"""检查文件的完整性"""
actual_md5 = calculate_md5(file_path)
if actual_md5 == expected_md5:
print(f"文件 '{file_path}' 完整。")
else:
print(f"文件 '{file_path}' 不完整。")
# 示例用法
file_path = r'E:\xingren\v0.5\XingRen_ver001.tar'
expected_md5 = r'E:\xingren\v0.5\XingRen_ver001.tar.md5' # 替换为你预期的 MD5 哈希值
check_integrity(file_path, expected_md5)
结论,要用自带的md5sum命令检查原文件是否完整。
3. 数据一致性查验
name='mydatasets' # 可以是一个文件夹
tar -cf ${name}.tar ${name} # 压缩数据
md5sum ${name}.tar > ${name}.tar.md5 # 生成md5文件
md5sum -c ${name}.tar.md5 # 校验文件的完整性