Linux下md5sum/sha256sum默认自带,输出“校验值 空格 文件名”;校验值提取用cut -d' ' -f1;批量校验需-b模式生成清单并确保路径一致;管道校验用-读stdin,跨平台注意换行符。

Linux下用md5sum和sha256sum计算单个文件校验值
直接运行命令就能拿到结果,不需要额外安装(绝大多数发行版默认自带)。输出格式是“校验值+空格+文件名”,注意空格是分隔符,不是校验值的一部分。
- 查看MD5:
md5sum filename.txt - 查看SHA256:
sha256sum filename.txt - 如果文件名含空格或特殊字符,加引号:
sha256sum "my file.tar.gz" - 想只输出校验值(不含文件名),用
cut切字段:md5sum file.bin | cut -d' ' -f1
批量校验多个文件并保存到.md5或.sha256清单文件
生成校验清单是为了后续比对——比如下载完一堆安装包后验证完整性。关键点在于:必须用-b(二进制模式)避免换行符干扰,且清单文件路径要和校验时的相对路径一致,否则sha256sum -c会报No such file。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 生成当前目录所有
.deb包的SHA256清单:sha256sum -b *.deb > checksums.sha256 - 验证清单里的所有文件:
sha256sum -c checksums.sha256 - 验证时跳过缺失文件(只报错存在的):
sha256sum -c --quiet checksums.sha256 - 如果清单里记录的是
./file.tar,但你在子目录执行验证,就会失败——路径必须匹配
sha256sum -c验证失败的常见原因
不是命令写错了,而是环境细节没对齐。最常踩的坑是:校验值本身没错,但文件被意外修改、路径不一致、或者清单生成时没加-b导致Windows换行符污染。
- 错误信息
file.tar.gz: FAILED→ 先确认文件是否真被改过(比如下载中断、解压覆盖) - 错误信息
file.tar.gz: No such file or directory→ 检查清单里写的路径(如downloads/file.tar.gz),再看当前工作目录是否在downloads/下 - 错误信息
sha256sum: WARNING: 1 computed checksum did NOT match→ 可能是清单用echo手动生成时混入了不可见字符,建议一律用sha256sum -b生成 - 在Mac或Windows上编辑过清单文件 → 行尾换行符可能变成
\r\n,Linux下sha256sum -c会校验失败,用dos2unix checksums.sha256修复
管道中实时计算校验值(不落地文件)
有些场景根本不想存中间文件,比如验证远程HTTP资源、或者对压缩流直接校验。这时候不能用md5sum filename,得靠-读取stdin。
- 下载时直接算SHA256:
curl -s https://example.com/app.bin | sha256sum - 解压前验证tar包:
cat archive.tar.gz | sha256sum(注意:这校验的是压缩包本身,不是里面文件) - 配合
gzip -dc验证解压后内容:gzip -dc archive.tar.gz | sha256sum - ⚠️ 管道方式无法同时保存文件和校验值,如果既要校验又要存文件,得用
tee:curl -s URL | tee file.bin | sha256sum
sha256sum -c看似简单,出错却往往卡在看不见的地方。

















