【busybox记录】【shell指令】cksum

目录

内容来源:

【GUN】【cksum】指令介绍

【busybox】【cksum】指令介绍

【linux】【cksum】指令介绍

使用示例:

[计算校验和 - 传统输出格式](#计算校验和 - 传统输出格式)

[默认输出 - 基础POSIX标准32位CRC校验和](#默认输出 - 基础POSIX标准32位CRC校验和)

其他校验指令对参数有更好的支持,请看其他校验指令

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

GUN : Coreutils - GNU core utilities

busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【cksum】指令介绍

bash 复制代码
cksum 打印并验证文件校验和
默认情况下,cksum 为每个给定的文件计算32位循环冗余校验(CRC)校验和,如果没有给出标准输入,则为'-'文件计算标准输入。
cksum 还支持 -a/--algorithm 选项来选择要使用的摘要算法。
这些摘要的首选接口是 cksum, 它包含其他独立的校验和工具,可以使用cksum -a md5 --untagged "$@"等进行模拟。
简介:
cksum [option]... [file]...
通过比较接收文件的 cksum 输出与原始文件的 cksum 输出(通常在分发版中给出),通常使用 cksum 来确保文件没有被破坏。
6.3.1 cksum输出方式
传统输出格式
	默认情况下,cksum 打印每个文件的POSIX标准CRC校验和以及文件中的字节数和文件名,除非没有给出参数。
	使用的32位CRC是基于 SO/IEC 8802-3:1996 标准(以太网)中用于CRC错误检查的多项式。
	类似的输出格式用于其他可选择的 --algorithm=sysv 或 --algorithm=bsd 的遗留校验和,详情见6.2节[sum调用]。

标记输出格式
	当 --algorithm 选项选择非传统校验和时,cksum命令默认输出如下表单:
		digest_name (file name) = digest
	独立校验和工具可以使用--tag选项来选择这种输出模式。

无标签的输出格式
	如果使用 --untagged 选项和 --algorithm 选项选择非遗留校验和,则使用以下输出格式。这是独立校验和工具的默认输出格式。
	对于每个文件,我们打印校验和、空格、表示二进制或文本输入模式的标志以及文件名。
	二进制模式用'*'表示,文本模式用' '(空格)表示。
	在重要的系统上,二进制模式是默认的,否则文本模式是默认的。
	没有 --zero,并且使用非遗留输出格式,如果文件包含反斜杠、换行或回车,则该行以反斜杠开始,并且文件名中每个有问题的字符都用反斜杠进行转义,这样即使在存在任意文件名时,输出也不会有歧义。
	由于反斜杠字符本身是转义的,任何其他的反斜杠转义序列都保留为将来使用。
6.3.2 cksum通用选项
'-a'
'--algorithm'
	使用指定的摘要算法计算校验和。
	支持的传统校验和(不支持 --check):
		'sysv'             等价于sum -s
		'bsd'              等价于sum -r
		'crc'              等价于cksum(默认值)
	支持的更现代的摘要算法有:
		'md5'              等价于md5sum
		'sha1'             等价于sha1sum
		'sha224'           等价于sha224sum
		'sha256'           等价于sha256sum
		'sha384'           等价于sha384sum
		'sha512'           等价于sha512sum
		'blake2b'          等价于b2sum
		'sm3'              只能通过cksum使用
'--base64'
	打印base64编码的摘要,而不是十六进制。这个选项会被 --check忽略。格式符合 RFC 4648#4 (https://datatracker.ietf.org/doc/html/rfc4648#section-4).
	每个base64编码的摘要有0、1或2个尾部填充('=')字节。
	填充的长度是对3取模的校验和位长,而--check解析器需要与输出完全相同的输入摘要字符串。例如,删除或添加任何`=`填充会导致摘要不匹配。
'--debug' 
	向stderr输出额外的信息,比如校验和的实现。
'-l'
'--length'
	更改(缩短)默认摘要长度。该值以bit为单位指定,因此必须是8的倍数。当指定--check时,此选项将被忽略,因为在检查时自动确定长度。
'--raw' 
	只打印单个输入未编码的原始二进制摘要。不要输出文件名或其他任何东西。适用时使用网络字节序(大端序):`bsd`、`crc`和`sysv`。
	此选项仅适用于单个输入。与其他输出格式不同,cksum不提供检查原始校验和的方法。
'--untagged'
	输出使用原始的 Coreutils 格式,其他独立的校验和工具使用这种格式,例如md5sum。
	这种格式将校验和放在一行的开头,可能更适合其他实用程序进行进一步处理,特别是与 --zero选项结合使用时。
	这并不能确定用于校验和的摘要算法。有关此格式的详细信息,请参阅第43页第6.3.1节[cksum输出模式]。
6.3.3 cksum常用选项
'-b'
'--binary'
	cksum命令不支持此选项,因为它只以二进制模式运行。通过以二进制模式读取并输出`*`标志,将每个输入文件视为二进制文件。
	这是 --text的逆。在像GNU这样不区分二进制文件和文本文件的系统上,此选项仅将每种输入模式标记为二进制:校验和不受影响。
	这个选项是MS-DOS等区分二进制文件和文本文件的系统的默认选项,当标准输入是终端时,读取标准输入除外。
'-c'
'--check' 
	从每个文件(如果没有指定文件,则从标准输入)读取文件名和校验和信息(不是数据),并报告校验和是否与指定文件的内容匹配。这种模式的输入通常是命令运行之前生成校验和的输出。
	支持三种输入格式。
		要么是上面描述的默认输出格式------tag输出格式,
		要么是类似于默认模式的BSD反向模式格式,
		但不使用字符来区分二进制和文本模式。
	对于cksum命令,当以 --tag格式输出校验和信息时,--check选项支持自动检测要使用的摘要算法。同样对于cksum命令,--check选项自动检测摘要编码,既接受标准的十六进制校验和,也接受通过cksum的------base64选项生成的校验和。
	--check不支持启用--zero的输出。
	对于每一行,cksum 读取指定文件并计算其校验和。然后,如果计算出的消息摘要与文件名所在行的消息摘要不匹配,则将该文件标记为未通过测试。否则,文件通过测试。
	默认情况下,对于每一个有效的行,都会向标准输出写入一行,以表明指定的文件是否通过了测试。
	在所有检查完成后,如果有任何失败,则对标准错误发出警告。使用--status选项来禁止该输出。
	如果列出的任何文件无法打开或读取,如果任何有效行与相关文件的校验和不一致,或者没有找到有效行,则 cksum 以非零状态退出。否则,退出成功。
	cksum命令不支持使用旧的`sysv`、`bsd`或`crc`算法进行检查。
'--ignore-missing'
	此选项仅在验证校验和时有用。在验证校验和时,不要失败或报告任何丢失文件的状态。当给定一个较大的校验和列表来验证下载文件的子集时,这很有用。
'--quiet' 
	此选项只在校验校验和时有用。在验证校验和时,不要为每个成功检查的文件生成`OK`消息。验证失败的文件以默认的每行文件格式报告。如果有任何校验和不匹配,则打印一个警告,汇总失败到标准错误。
'--status'
	此选项仅在验证校验和时有用。在验证校验和时,不要生成默认的逐行诊断,也不要输出总结任何失败的警告。
	打开或读取文件失败仍然会触发对标准错误的个别诊断。如果列出的所有文件都是可读的,并且与相关的校验和一致,则成功退出。否则,以指示失败的状态码退出。
'--tag' 
	输出BSD风格的校验和,表示使用的校验和算法。作为一个GNU扩展,如果不使用 --zero,带有问题字符的文件名会像上面描述的那样进行转义,使用与其他输出格式相同的转义指示器'\'。
	--tag选项意味着二进制模式,如果支持--text模式,则不允许使用--text模式,因为那样会使输出格式不必要地复杂化,而且没有什么好处。
	有关此格式的详细信息,请参阅第43页第6.3.1节[cksum输出模式]。cksum命令使用--tag作为默认的输出格式。
'-t'
'--text' 
	cksum命令不支持此选项。通过以文本模式读取并输出` `标志,将每个输入文件视为文本。这是二进制的倒数。
	在像GNU这样不区分二进制文件和文本文件的系统上,这个选项是默认的。在其他系统上,当标准输入是终端时,它是读取标准输入的默认值。如果使用 --tag,则不会默认使用此模式。
'-w'
'--warn' 
	在验证校验和时,对格式不正确的校验和行发出警告。只有在选中的输入中只有几行有效时,这个选项才有用。
'--strict'
	在验证校验和时,如果一个或多个输入行无效,在发出所有警告后退出 nonzero。
'-z'
'--zero'
	在每行末尾输出一个零字节(ASCII NUL),而不是换行符。
	该选项使其他程序能够解析输出,即使该输出包含嵌入换行符的数据。也不使用文件名转义。

【busybox】【cksum】指令介绍

NA

【linux】【cksum】指令介绍

bash 复制代码
用法:cksum [文件]...
 或:cksum [选项]
输出每个文件的 CRC 校验值和字节统计。

      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 cksum 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/cksum>
或者在本地使用:info '(coreutils) cksum invocation'

使用示例:

计算校验和 - 传统输出格式

输出的格式:POSIX标准CRC校验和 文件中的字节数 文件名

指令:cksum test*

默认输出 - 基础POSIX标准32位CRC校验和

NA

其他校验指令对参数有更好的支持,请看其他校验指令

NA

常用组合指令:

NA

指令不常用/组合用法还需继续挖掘:

相关推荐
翼龙云_cloud1 分钟前
阿里云渠道商:什么是阿里云无影云手机?
运维·阿里云·智能手机·云计算
mooyuan天天12 分钟前
Cobalt Strike渗透生成 linux http Beacon不生效bug分析与解决方法
linux·内网渗透·横向移动·cobalt strike
赖small强12 分钟前
【音视频开发】Linux 平台图像处理与视频录制全流程指南 (Ingenic T41)
linux·图像处理·音视频·isp·视频录制
vortex514 分钟前
Docker 逃逸常见利用方式
运维·docker·容器
0wioiw016 分钟前
Docker(Portainer)
运维·docker·容器
w我是东山啊17 分钟前
ARP的具体过程和ARP欺骗
linux·服务器·网络
橙露18 分钟前
PLC编程语言大比拼:特性解析与场景选型指南
大数据·linux·运维
珠海西格电力26 分钟前
零碳园区数字感知基础架构规划:IoT 设备布点与传输管网衔接设计
大数据·运维·人工智能·物联网·智慧城市·能源
街灯L31 分钟前
【Ubuntu】安装配置nginx文件版
服务器·nginx·ubuntu
༺๑Tobias๑༻1 小时前
国内可用的DOCKER 镜像源
运维·docker·容器