You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cksum v8.32不识别-a算法选项报错的原因及解决方法

问题原因

coreutils 8.32版本内置的cksum工具没有实现-a/--algorithm参数,多算法选择功能是coreutils 9.0及之后版本才新增的特性。
本地执行cksum --help的输出仅提及支持CRC校验和计算,无任何算法选择相关参数说明,属于典型的文档与本地程序版本不匹配问题:参考的是最新版工具文档,实际运行的是旧版本程序。
部分发行版存在软件包补丁回溯不完整、多版本coreutils共存时PATH优先级指向旧二进制文件的情况,也会触发相同报错。

实现方案

方案1:升级coreutils匹配新版文档功能

将系统coreutils包升级到9.0及以上版本,升级完成后执行cksum --version确认版本号符合要求,且cksum --help输出中存在-a/--algorithm选项说明,即可正常使用参数选择算法。升级后三种校验和的调用命令如下:

  • 生成CRC32校验和:cksum -a crc32 目标文件路径
  • 生成SHA1校验和:cksum -a sha1 目标文件路径
  • 生成SHA256校验和:cksum -a sha256 目标文件路径

方案2:使用系统预装的专用校验工具(兼容性最优)

无需升级任何软件,几乎所有类Unix系统都默认预装了对应算法的独立校验工具,不存在跨版本兼容问题,是批量生成校验和的首选方案:

  • 生成CRC32校验和:直接调用旧版cksum即可,默认输出的第一列就是CRC32校验值,命令为cksum 目标文件路径
  • 生成SHA1校验和:调用sha1sum工具,命令为sha1sum 目标文件路径
  • 生成SHA256校验和:调用sha256sum工具,命令为sha256sum 目标文件路径

如果需要批量遍历目录下所有文件生成三种校验和,可以直接执行如下shell脚本:

#!/bin/bash
# 遍历当前目录下所有普通文件生成校验和
for target_file in *; do
  if [ -f "$target_file" ]; then
    echo "===== 文件: $target_file ====="
    echo "CRC32:  $(cksum "$target_file" | awk '{print $1}')"
    echo "SHA1:   $(sha1sum "$target_file" | awk '{print $1}')"
    echo "SHA256: $(sha256sum "$target_file" | awk '{print $1}')"
    echo ""
  fi
done

内容的提问来源于stack exchange,提问作者Willis Hershey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:21:21