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那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...
随机推荐
- PHP PSR基本代码规范(中文版)
PSR-1 基本代码规范 本篇规范制定了代码基本元素的相关标准,以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 “必须”("MUST").“一定不可/一定不能”(&qu ...
- 关于PHP写的投票网站之刷票风云
最近学校导航站找我让我给他们做一个投票系统的网站,我一口答应了,他们只是要求不准刷票情况出现,我也一口答应了..我答应的太干脆了. 然后我便开始做这个网站,网站做出来没花太多时间,并且我是用IP来判断 ...
- GISer面对创业的困惑
最近看各大IT门户网站都会看到很多XXX的创业经历,特别是最近比较火爆的手机APP,更是让很多吊丝程序员成功逆袭.不得不佩服人家对自身技术的坚持和面对机会的把握能力,但是身为GIS专业的自己,每次都很 ...
- 2015年末分享:利用RS修改用户密码
马上就要2016农历新年了,送点什么给大家呢?我觉得还是分享点技术吧.前不久用户在抱怨为什么登录Cognos Connection的密码不能让我们自己改?相信Cognos开发的很多人知道,Cognos ...
- Run Repository Creation Utility (RCU) for Oracle Identity Management components
Run Repository Creation Utility (RCU) for Oracle Identity Management components Installing O ...
- TQ2440 LCD试验失败经验教训
试验环境:TQ2440开发板(配套TQ4.3寸屏) 试验参考书目:<ARM处理器裸机开发实战--机制而非策略>(以下简称<裸机开发实战>) <裸机开发实战>第13章 ...
- hadoop MultipleInputs fails with ClassCastException (get fileName)
来自:http://stackoverflow.com/questions/11130145/hadoop-multipleinputs-fails-with-classcastexception F ...
- Loadrunner错误-26601、-27492、-27727处理方法
1.错误 -26601: 解压缩函数(wgzMemDecompressBuffer)失败,返回代码=-5 (Z_BUF_ERROR).inSize=0.inUse=0.outUse=0 用LR做压力测 ...
- android缓存具体解释
Android缓存: 採用缓存,能够进一步大大缓解数据交互的压力.又能提供一定的离线浏览.下边我简略列举一下缓存管理的适用环境: 1. 提供网络服务的应用 2. 数据更新不须要实时更新,哪怕是3-5分 ...
- [TODO]com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method
异常信息如下: 2018-10-30 20:00:50.230 ERROR java.util.concurrent.ExecutionException: com.alibaba.dubbo.rpc ...