Linux命令之文件校验cksum

概述

cksum 命令用于检查文件的 CRC 是否正确, 确保文件从一个系统传输到另一个系统的过程中的正确性

在这里插入图片描述

循环冗余校验法 ( CRC )是一种排错检查方式,该校验法的标准由 CCITT 所指定,至少可检测到99.998%的已知错误。这种方法要求校验和在源系统和目的系统中分别被计算出来,之后进行比较,如果校验和相等,则认为该文件传输正确。若不指定任何文件名称或是所给予的文件名为”-“,则指令”cksum”会从标准输入设备中读取数据。

注:该命令可以用来检查文件传输中是否文件被完整传输过来了,可以同 md5sum 命令一起学习。

语法

该命令的语法如下:

cksum [选项] [文件]

该命令支持的选项有:

选项说明
–help在线帮助
–version显示版本信息

注:显示的结果中第一列表示校验码;第二列表示文件大小;第三列表示文件名。

使用

校验文件

命令格式如下:

# 语法
cksum 文件名
# 示例
cksum test.txt

在这里插入图片描述

与管道符结合

例如:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下 Perl 代码来完成你的需求: ```perl use strict; use warnings; # 获取当前文件夹下所有以 ".png" 结尾的文件 my @files = glob "*.png"; # 打开 CRC 文件用于写入校验结果 open my $crc_fh, '>', 'CRC.txt' or die "无法打开 CRC 文件: $!"; # 遍历每个文件,计算校验和并写入 CRC 文件 foreach my $file (@files) { # 使用 cksum 命令计算校验和 my $cksum_output = `cksum $file`; # 提取校验和结果 my ($checksum, $size, $filename) = split /\s+/, $cksum_output; # 将校验结果写入 CRC 文件 print $crc_fh "$checksum\n"; } # 关闭 CRC 文件 close $crc_fh; # 读取 CRC 文件中的每一行并存储到队列中 my @queue; open $crc_fh, '<', 'CRC.txt' or die "无法打开 CRC 文件: $!"; while (my $line = <$crc_fh>) { chomp $line; push @queue, $line; } close $crc_fh; # 比较队列中的值 if (scalar @queue > 1) { my $first_value = shift @queue; my $same_values = 1; foreach my $value (@queue) { if ($value ne $first_value) { $same_values = 0; last; } } if ($same_values) { print "队列中的所有值相同\n"; } else { print "队列中的值不全相同\n"; } } else { print "队列中的值不足两个\n"; } ``` 这段代码首先获取当前文件夹下所有以 ".png" 结尾的文件,然后使用 `cksum` 命令计算每个文件校验和,并将校验结果依次写入到名为 "CRC.txt" 的文件中。接着,读取 "CRC.txt" 文件中的每一行并存储到队列中。最后,比较队列中的值,如果所有值相同,则输出 "队列中的所有值相同";否则,输出 "队列中的值不全相同"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值