文件夹进行MD5校验的实现算法
每份相同数据(文件夹)都可以生成一份唯一的md5校验文件,我们可以通过直接校验整个数据文件夹的方法来确定数据是否有误。
1.针对整个文件夹生成md5校验文件方法:
以data文件夹为例,我们需要得到data整个文件夹中的文件的md5校验值,我们通过shell程序对整个data文件夹中的文件进行md5校验。
通过如下命令获得整个data文件夹的md5校验文件:
cd data
find ./ -type f -print0 | xargs md5sum > data_temp.md5
cat data_temp.md5 | sort > data.md5
(找出data文件中的每个文件并获得该文件的md5值存入data_temp.md5
中 ,然后对md5值的文件进行排序获得data.md5校验文件)
data.md5文件中数据格式如下,前面的字符串是该文件的md5值,后面的是该文件相对data文件夹的路径。由于每个不同文件的md5值都唯一,每个文件的路径都不同,所以排序之后,同样的文件夹生成的该md5文件都是唯一的
040173e4c2c29787cd0e644bd3737f8f ./preinstall/Babaqunaer_1.3.6.apk
0054b51601427b2630793d43ed0b224c ./pcvoice/7.mp3
2.生成md5校验文件程序:
#!/bin/bash
# author: huinatianyun
# Updated Date:--
# Set environment variables LANG=""
export LANG
#这里必须要设置语言环境,因为sort排序是对文件的每一行作为一个单位,相互比较,比较原则是从首字符向后依次进行比较,语言环境不同,字符的编码可能就不一样,所以会导致文件文件排序结果不一致,LANG=""表示默认设置为en_US
echo ""
echo ""
echo "please put generate_md5_value.sh, custdata.tar, hpdata.tar, hwapudata.tar in the same directory,"
echo "" read -p "are you put generate_md5_value.sh in the right position ? (Y/N): " select_yn echo "" echo "" if [ "$select_yn" == "Y" ] || [ "$select_yn" == "y" ]; then echo "start generate data.md5 ..." cd ./data find ./ -type f -print0 | xargs - md5sum | sort > ../data.md5 #xargs 命令-0是表示以空字符作为分隔符,因为有些目录的名字是含有空格的,而xargs是默认是以空格为分割符的,它会误认为还有空格的目录的路径为两个路径,换成空字符就是消除这个问题 echo "generate md5 value over" elif [ "$select_yn" == "N" ] || [ "$select_yn" == "n" ]; then echo "stop generate md5 value !" else echo "I don't know what your choice is !!!" fi
3.数据校验方法:
通过上述方法对data文件夹里数据生成一份md5校验文件,这个md5文件就这可作为这个data文件夹的校验文件,校验一个文件夹数据是否和data相同的方法就是针对该文件夹通过同样的方法生成一份md5校验文件,然后比对校验文件是否相同,如果两个文件相同,这认为这两个比对的数据文件夹一致
文件夹进行MD5校验的实现算法的更多相关文章
- 文件CRC和MD5校验
文件CRC和MD5校验 CRC和MD5用于文件和数据的传输校验,以确认是否接收成功. unit CRCMD5; interface { 获取文件CRC校验码 } function GetFileCRC ...
- Java 读取网络资源文件 获取文件大小 MD5校验值
Java 读取网络资源文件 获取文件大小 MD5校验值 封装一个文件操作工具类: package c; import java.io.*; import java.net.HttpURLConnect ...
- 三、Socket之UDP异步传输文件-多文件传输和文件MD5校验
本文接着上一篇文章二.Socket之UDP异步传输文件,在上一篇文章的基础上实现多文件的传输和文件传输完成后进行完整性校验. 要实现多文件的传输,必须要对文(2)中发送文件的数据格式进行改进,必须加入 ...
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...
- MD5校验
好久没有写随笔了,正好这两天可以休整一下,借此机会总结下最近使用python的小体会. 个人体会文件校验在下载文件时使用较多,在linux下最简单的实现方式就是: 1 $ md5sum filenam ...
- Shell 对整个文件夹中的文件进行MD5校验 [转]
查看本地文件的 MD5 命令:md5sum FileName查看home目录下所有文件的 MD5 码:cd ~find /home -type f -print0 | xargs -0 md5sum ...
- Linux下校验下载文件的完整性(MD5,SHA1,PGP)
查看: Linux下校验下载文件的完整性(MD5,SHA1,PGP) http://blog.useasp.net/archive/2014/03/29/use-md5-sha1-or-pgp-to- ...
- Java 获取 文件md5校验码
讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...
- python tcp黏包和struct模块解决方法,大文件传输方法及MD5校验
一.TCP协议 粘包现象 和解决方案 黏包现象让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd)执行远程命令的模块 需要用到模块subprocess sub ...
随机推荐
- PHP使用file_put_contents写入文件的优点
本篇文章由:http://xinpure.com/advantages-of-php-file-write-put-contents-to-a-file/ 写入方法的比较 先来看看使用 fwrite ...
- Python 代码块左移或右移
(就 IDE 是 PyCharm 来说) 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab Python 对代码对齐要求很严格的. Python的对齐方式很重要,对齐方式决定了 ...
- 严重: Exception starting filter struts2 Unable to load configuration. - [unknown location]
一般来说,按照这个流程下来是没有错的:SSH三大框架合辑的搭建步骤 但是,近来的一个测试例子出现了以下这个问题,困扰了许久!! 各种百度&各种问同学,最后请教了张老师后问题得到解决: 1.这种 ...
- swift向方法传数组参数的语法
总是记不住向方法中传数组参数的语法,所以记录一下. func calculateStatistics(scores:[Int]) -> (min:Int,max:Int,sum:Int) { v ...
- blender, fbx导入blender进行编辑
fbx文件导入blender后,直接点下面Object Mode弹不出下拉菜单,从而无法进入Edit Mode.解法是先点一下右边Scene层级列表中的Sphere节点,将其选中,然后再点下面的Obj ...
- C#颜色 Color.FromArgb ColorTranslator 16进制
//方法1: //引用命名空间 using System.Drawing; 16进制颜色代码转Color类型:ColorTranslator.FromHtml(color); Color类型转16进制 ...
- Selenium操作之滚动条
在用Selenium做UI自动化时,经常会遇到有些元素找不到之类的问题,但是自己的代码并没有错,元素就是找不到,这是为什么呢?原因很简单,由于页面内容较多,有些内容需要下拉滚动条才会显示,这里介绍一种 ...
- CentOS 7 ifconfig: command not found
# ifcon-bash: ifconfig: command not found谷歌了一下,整理了一下解决思路 查看ifconfig命令是否存在 查看 /sbin/ifconfig是否存在 如果if ...
- gcc 遇到过的语法问题
1.在ubuntu 12.04 环境下,在/etc/ld.so.conf.d/目录里添加某个so库的配置路径,比如 /home/myself/abc/lib/ 执行 sudo ldconfig
- php服务器端与android客户端通信问题
http://www.oschina.net/question/616446_90760