文件夹进行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 ...
随机推荐
- 我的第一个 RN 项目-趣闻
代码地址如下:http://www.demodashi.com/demo/13486.html 项目预览 IOS: Android: 扫描体验: 或者点我 整体功能跟之前小程序和 Android 项目 ...
- 【微信小程序】获取轮播图当前图片下标、滑动展示对应的位数、点击位数展示对应图片
业务需求: 3个图片轮番播放,可以左右滑动,点击指示点可以切换图片 index.wxml: 这里使用小程序提供的<swiper>组件autoplay:自动播放interval:自动切换时 ...
- Eclipse Debug 使用
Eclipse的debug模式:代码调试 * Eclipse或MyEclipse就是java的开发工具 * Eclipse开源的.免费的Java开发工具 * MyEclipse基于Eclipse开 ...
- 欧洲顶级音频播放软件AIMP
http://zmingcx.com/europes-top-software-aimp-audio-player.html 音频播放软件众多,耳熟能详的Winamp.Foobar2000.千千静听. ...
- golang中使用mongodb
mgo简介 mongodb官方没有关于go的mongodb的驱动,因此只能使用第三方驱动,mgo就是使用最多的一种. mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API ...
- LAMP架构二
安装PHP7 1.查看php配置文件信息(phpinfo),php有两个配置文件开发环境和生产环境 [root@localhost php-5.6.30]# /usr/local/php/bin/ph ...
- Python 实现根据不同的程序运行环境存放日志目录,Python实现Linux和windows系统日志的存放
说明:在我们开发的时候,有时候是在windows系统下开发的代码,我们的生产环境是Linux系统,更新代码就需要修改日志的环境,本文实现了代码更新,不需要配置日志文件的目录,同样也可以延伸到ip地址 ...
- [svc][op]pip安装ansible && yum安装python34
相对yum安装,pip安装的好处是jinjia版本到了2.8 pip安装ansible Successfully installed MarkupSafe-1.0 PyYAML-3.12 ansibl ...
- Unix删除当前目录可执行文件
On GNU versions of find you can use -executable: find . -type f -executable -printFor BSD versions o ...
- OpenGL数据类型及相应C数据类型