shell学习四十八天----文件校验和匹配
文件校验和匹配
要是你怀疑可能有非常多文件具有同样的内文,而是用cmp或diff进行比較全部横队的比較,导致所花费的时间会随着文件数目增长成次方的增长.
这是能够使用file checksum(文件校验和),取得近似线性的性能.有非常多工具可用来计算文件与字符串的校验和,包含sum,cksum,以及checksum,消息摘要工具md5与md5sum,安全性散列算法工具sha,shalsum,sha256,以及sha384.
案例:
$echo -n "hello" | md5sum | cut -d ' ' -f1
5d41402abc4b2a76b9719d911017c592
分析:获取字符串hell的MD5.
md5sum : 显示或检查MD5(128-bit)校验和,若没有文件选项,或者文件处为”-”,则从标准输入读取.
echo -n : 不打印换行
cut : cut用来从标准输入或文本文件里剪切列或域.剪切文本能够将之粘贴到一个文本文件.-d指定域空格和tab键不同的域分隔符.-f1表示第一个域.
校验程序用来从文件里生成校验密钥,然后利用这个校验password核实文件的完整性.一般文件能够通过网络分发带不同的地点.出于多种原因,数据有可能在传输过程中丢失若干位,从而导致文件的破坏.
因此我么须要採用一些測试方法去确定接收到的文件是否存在错误.我们能够对原始文件和接收到的文件进行校验.
通过对照两者的校验结果,就行核实接收到的文件是否正确.校验对于编写备份脚本或系统维护脚本来说非常重要.
使用md5sum或shalsum进行校验
最知名而且使用最广泛的检验和技术是md5sum和shalsum.他们对文件内容使用响应的算法来生成校验结果.
为了计算md5sum,使用下列命令:
$md5sum f1
42a6ab275d6ae3a62ab448fb44dffb8a f1
分析:得到的结果是一个32个字符的十六进制字符串后面跟文件名称.
将输出的校验结果重定向到一个文件,然后用这个md5文件核实数据的完整性:
md5sum f1>f1.MD5
能够依照以下的方法永盛成的文件何时数据完整性:
$md5sum -c f1.md5
f1: 确定
分析:假设出现确定,则证明文件无损.
shalsum是还有一个经常使用的检验算法.他从给定的输入文件里生成一个长度为40个字符的十六进制的字符串.其使用方法和md5sum很相似.
能够对多个文件进行校验
&md5sum f1 f2 > file.md5
$cat file.md5
42a6ab275d6ae3a62ab448fb44dffb8a f1
42a6ab275d6ae3a62ab448fb44dffb8a f2
分析:输出中会在每行中包括单个文件的检验结果字符串.
能够依照以下的方法用生成的文件核实数据完整性:
$md5sum -c file.md5
f1: 确定
f2: 确定
分析:这个命令会输出校验结果是否匹配的消息
对文件夹进行校验
对于文件夹进行校验意味着我们须要对文件夹中的全部文件以递归的方式进行计算.
他能够使用命令md5deep或者shaldeep来实现.首先,须要安装md5deep软件包能够确保能找到这些命令.使用方法例如以下:
$md5deep -rl directory_path>directory.md5
分析:-r选项代表使用递归的方式,-l(小写字母L)使用相对路径.默认情况下回话输出绝对路径.
使用以下的命令进行核实:
$md5sum -c dircetory.md5
shell学习四十八天----文件校验和匹配的更多相关文章
- shell 学习四十五天---xargs
当 find 产生一个文件列表时,该列表提供给另一个命令有时是很有用的.案例: $touch abc.c erd.c oiy.c $ll ./erd.c ./abc.c ./oiy.c $find - ...
- linux shell学习四
Shell分支语句 case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command ...
- shell学习四十天----awk的惊人表现
awk的惊人表现 awk能够胜任差点儿全部的文本处理工作. awk 调用 1.调用awk: 方式一:命令行方式 awk [-F field-separator ] 'commands' inp ...
- 【Linux】Shell学习笔记之四——文件和目录管理(硬连接和软连接)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- shell学习三十八天----运行顺序和eval
运行顺序和eval shell从标准输入或脚本中读取的每一行称为管道,它包括了一个或多个命令,这些命令被一个或多个管道字符(|)隔开. 其实嗨哟非常多特殊符号可用来切割单个的命令:分号(;),管道(| ...
- shell学习五十八天----/proc文件系统
/proc文件系统 前言:linux中的/proc文件系统,由一组文件夹和文件组成,挂载(mount)与/proc文件夹下. /proc文件系统是一种虚拟文件系统,以文件系统文件夹和文件形式,提供一个 ...
- shell学习四十九天----进程建立
进程 前言:进程指的是运行中程序的一个实例.新进程由fork()与execve()等系统调用所起始,然后运行,知道他们下达exit()系统调用为止. linux系统都支持多进程.尽管计算机看起来像是一 ...
- python学习第十八天 --文件操作
这一章节主要讲解文件操作及其文件读取,缓存,文件指针. 文件操作 (1)文件打开:open(filepath,filemode) filepath:要打开文件的路径 filemode:文件打开的方式 ...
- linux 学习3 第四讲 文件常用命令
好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...
随机推荐
- Gson解析复杂Json数据
背景 json是一种数据格式,便于数据传输.存储.交换. gson是 ...
- 《House of Cards》观后感
<House of Cards>,首先我得说好看,36个赞,比我以前看的那些美剧都要好看,虽然我是个屌丝程序员,但是我还是希望我自己看书不只看专业的书那种,虽然我是个屌丝程序员,工科男,所 ...
- ComboBoxEdit 数据绑定 使用模板
1)定义模板资源 <UserControl.Resources> <local:StatusConvertor x:Key="StatusConvertor"&g ...
- .NET MVC自定义错误处理页面的方法
在ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那 ...
- 使用AKKA做分布式爬虫的思路
上周公司其它小组在讨论做分布式爬虫,我也思考了一下.提了一个方案,就是使用akka分布式rpc框架来做,自己写master和worker程序,client向master提交begin任务或者其它爬虫需 ...
- 安装apache+php记录
安装apache yum install httpd 修改apache配置文件,可以修改apache的默认端口号,根目录等 /etc/httpd/conf/httpd.conf 启动/重启apache ...
- iOS中重用UITableView单元格时,千万别忘了这个
不多说,看截图
- C#中相关结构的用法及用途
C#中Dictionary的用法及用途 http://www.cnblogs.com/linzheng/archive/2010/12/13/1904709.html C#中的Dictionary字典 ...
- lenovo E431 win8系统 安装win7
事由:新买的lenovo e431 原装win8系统.win8系统本来就不好用,又傻傻的装了win10的预览版,丑死不说,还各种驱动不兼容,每次开机都提示不兼容——本人有点洁癖,见不得这种,本想把不兼 ...
- iOS后台播放音乐
iOS实现在后台播放音乐 iOS4之后就支持后台播放音频了.只需下面两步就可以实现后台播放音频操作了. 1. 在Info.plist中,添加"Required background mode ...