【busybox记录】【shell指令】cksum

2024-05-06 05:44

本文主要是介绍【busybox记录】【shell指令】cksum,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

内容来源:

【GUN】【cksum】指令介绍

【busybox】【cksum】指令介绍

【linux】【cksum】指令介绍

使用示例:

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

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

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

常用组合指令:

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


内容来源:

        GUN : Coreutils - GNU core utilities

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

【GUN】【cksum】指令介绍

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】指令介绍

用法: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

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

这篇关于【busybox记录】【shell指令】cksum的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963550

相关文章

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型