精华内容
下载资源
问答
  • 主要介绍了linux 比较两个文件夹diff不同 (diff命令, md5列表),比较文件夹diff,可以直接使用diff命令,也可以比较文件md5列表,下面通过实例给大家介绍下,感兴趣的朋友跟随脚本之家小编一起学习吧
  • md5sum命令用于生成和校验文件md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同 2、比较文件 1)、生产文件的md5 md5sum file1 md5sum file2 会有结果...

    1、md5sum命令介绍

    md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同

     


    2、比较文件

    1)、生产文件的md5
      
    md5sum  file1
    
    md5sum file2

    会有结果显示
     
    2)、批量生成md5文件
     
    md5sum * 

    3)、二进制模式读入和文本读入内容
     
    -b 以二进制模式读入内容
    -t 以文本模式读入文件内容进行校验
    虽然是不同的读入模式,但是在进行求md5的时候,是一样的,因为是逐位校验的。
     

    4)、md5值重定向
    将生成md5值重定向到指定的文件,通常文件的扩展名我们会命为.md5

     

    md5sum file1 > flle1.md5

     

     

     

    5)、-c选项来对文件md5进行校验。校验时,根据已生成的md5来进行校验。生成当前文件的md5,并和之前已经生成的md5进行对比,如果一致,则返回OK,否则返回错误信息

     

    md5sum -c file1.md5


    ******  ok

     

     

     

    展开全文
  • 最近项目需要,需要对客户传过来的文件进行MD5校验,在实现的过程中前前后后遇到了若干问题,在这里总结一下。 md5的计算采用openssl实现,具体代码网上很多,这里不再赘述。需要注意的问题 1 读取文件内容时,文件...
  • MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要...

    1、简介

    MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。 
    在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。 

    2、命令格式

    md5sum [OPTION]... [FILE]... 

    3、命令选项

    -b 或 --binary :把输入文件作为二进制文件看待。 
    -t 或 --text :把输入的文件作为文本文件看待(默认)。 
    -c 或 --check :用来从文件中读取md5信息检查文件的一致性。(不细说了参见info) 
    --status :这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。 
    -w 或 --warn :在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。

    4、例子

    (1)生产一个文件的md5值,如下图所示

     

    (2)检查两个文件是否一样,可以通过比较两个文件的md5值。

    (3)判断一个文件是否修改,通过md5来判断

    展开全文
  • linux下查看文件md5值的命令为: md5sum 目标文件 linux 系统比对两个文件内容是否完全相同(如果文件内容完全相同,即使文件名不同,其md5值也是相同的。可用于扫黄检测): md5sum file1 file2 例如:比对...

    linux下查看文件md5值的命令为:

    md5sum 目标文件

    linux 系统比对两个文件内容是否完全相同(如果文件内容完全相同,即使文件名不同,其md5值也是相同的。可用于扫黄检测):

    md5sum file1 file2

    例如:比对当前目录下的 percona-release.repo  和 /etc/yum.repos.d目录下 percona-release.repo 内容是否完全一样:

    [root@sjk1 ~]# md5sum percona-release.repo /etc/yum.repos.d/percona-release.repo
    2a6fdf9ce2c550c3bb54580de65a29e2  percona-release.repo
    2a6fdf9ce2c550c3bb54580de65a29e2  /etc/yum.repos.d/percona-release.repo
    [root@sjk1 ~]# 


    diff 命令

    如果两个文件内容不同,怎么显示细节,是哪些地方不同。用:

    diff  file1  file2

    若两个文件内容完全相同,则结果如下:

    若两个文件存在内容不同的地方,则结果如下:

    展开全文
  • 以前写的一脚本,觉得还会用着便贴了出来 ...# Calculate the current folder all the files MD5 value. # History: # 2016/10/28 Shang Yexin First release function ergodic(){ for file in ` ls -a $...

    编写原因

    当初编写这个小工具的原因是,当解压某个压缩包到指定目录时,覆盖时会将目标目录里面的文件损坏,这个工具可以校验压缩包里面的文件有没有全部正确无损的覆盖到目标路径。

    工具分为shell脚本和C语言两个部分。

    原理说明

    在打包压缩文件前,运行md5.sh脚本(也就是下面的脚本)。使用前先用chmod+x增加可执行权限,这个脚本会递归的将当前目录内的所有文件的文件名和对应的md5值记录到名为check.md5文件中。

    在解压该压缩包后,运行md5_check程序(由下面C代码编译生成)时,会依次计算check.md5里所有文件的md5值,与表中记录的正确的md5值进行对比,通过比较md5值的一致性判断文件有无正确覆盖,而且会将校验结果输出到指定文件。

    Shell脚本

    #!/bin/bash 
    # program:
    # Calculate the MD5 value of all files in the current folder.
    # History:
    # 2016/10/28 Shang Yexin First release
    function ergodic(){ 
        for file in ` ls -a $1 ` 
        do 
            if [ $file == . ] || [ $file == .. ]
            then 
                continue
            fi
            if [ -d $1/$file ] 
            then 
                ergodic $1/$file 
            else 
                md5sum $1/$file | sed s#$INIT_PATH/## >> $RECORDFILE
            fi 
        done 
    }
    #设置输出文件名
    RECORDFILE=check.md5
    #如果存在先删除,防止重复运行脚本时追加到记录文件
    test -e $RECORDFILE && rm $RECORDFILE
    #获取当前目录
    INIT_PATH=`pwd`
    #遍历所有文件
    ergodic $INIT_PATH
    #删除不需要的隐藏文件
    sed -i / \./d $RECORDFILE
    #按文件名称排序
    sort t -k 2 $RECORDFILE -o $RECORDFILE
    

    C语言

    源码地址:https://github.com/shangyexin/md5sum

    下载源码:

    git clone https://github.com/shangyexin/md5sum.git
    

    部分源码:

    /**
     * 校验文件md5值,查询列表中所有文件与记录的MD5值是否匹配
     * @param md5list   文件MD5值列表
     * @param rootpath  根文件系统路径
     * @return 校验完成返回0,错误失败返回-1
    */
    int md5_check_list(const char *md5list,const char *rootpath)
    {
        int ret = 0;
        int fd_md5;
        int count_success = 0;
        int count_fail = 0;
        FILE *listFile;
        char md5_correct[MD5_LENTH+1] = {0};
        char filename[PATH_LENTH] = {0};
        char entryname[PATH_LENTH] = {0};
        char record_file[PATH_LENTH] = {0};
        char check_success_msg[MSG_LENTH] = {0};
        char check_failed_msg[MSG_LENTH] = {0};
        const char* note = "md5 check failed files:\n";//提示信息
        const char* none_msg = "[File not exist]  ";//文件不存在提示信息
        const char* wrong_msg = "[Md5  not match]  ";//文件md5不匹配提示信息
    
        /*打开待校验列表文件*/
    	listFile = fopen(md5list,"r");
    	if(NULL == listFile){
    		printf("[md5_check] Open %s failed!\n",md5list);
    		return -1;
    	}
        /*创建结果记录文件*/
        if( NULL != get_current_time() ) {
            sprintf(record_file,"%s%s%s%s",RECORD_FILE_PATH,RECORD_FILE_PREFIX,get_current_time(),".log");
        }else {
            sprintf(record_file,"%s%s%s%s",RECORD_FILE_PATH,RECORD_FILE_PREFIX,"timenull",".log");
        }
        fd_md5 = open(record_file,O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
        if( fd_md5 > 0 ){
            /*写入提示信息*/
            write(fd_md5,note,strlen(note));
            write(fd_md5,"\n",1);
        } else {
            printf("[md5_check] Open %s failed! md5 check quit-----------------\n",record_file);
            return -1;
        }
        /*获取正确的md5值*/
        while( fscanf(listFile,"%s",md5_correct) != EOF ){
            /*获取文件名*/
            fscanf(listFile,"%s",entryname );
            /*拼接文件名*/
            if (rootpath == NULL) {
                snprintf(filename, PATH_LENTH, "%s%s", DEFAULT_ROOT_PATH, entryname);
            }
            else {
                snprintf(filename, PATH_LENTH, "%s%s", rootpath, entryname);
            }
            /*检验传入的文件名是否为普通文件,不是的话不校验*/
            ret = is_file(filename);
            if( -1 == ret ){
                write(fd_md5,none_msg,strlen(none_msg));
                write(fd_md5,filename,strlen(filename));
                write(fd_md5,"\n",1);
                count_fail ++;
                continue;
            }else if( 1 == ret ) {
                continue;
            }
            /*校验文件的MD5并与列表中正确的MD5进行比较,一致校验通过,否则失败*/
            if( 0 == strncmp(md5_correct,md5_check(filename),MD5_LENTH) ) {
                //printf("%s md5 check success!\n",filename);
                count_success ++;
            }
            else {
                //printf("%s md5 check failed!\n",filename);
                /*向文件中记录md5校验失败的文件*/
                write(fd_md5,wrong_msg,strlen(none_msg));
                write(fd_md5,filename,strlen(filename));
                write(fd_md5,"\n",1);
                count_fail ++;
            }
        }
        write(fd_md5,"\n",1);
        sprintf(check_failed_msg,"%d%s",count_fail," files update failed!");
        write(fd_md5,check_failed_msg,strlen(check_failed_msg));
        write(fd_md5,"\n",1);
        sprintf(check_success_msg,"%d%s",count_success," files update success!");
        write(fd_md5,check_success_msg,strlen(check_success_msg));
        write(fd_md5,"\n",1);
        close(fd_md5);
        
        return 0;
    }
    
    展开全文
  • MD5 校验两个文件是否一样

    万次阅读 2017-04-13 21:09:06
    1、简介 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,...在Linux或Unix上,md5sum是用来计算和
  • linux下调用openssl实现获得文件MD5值

    千次阅读 2017-02-03 15:01:58
    在网上找了好久都找不到一简洁完整的用代码实现计算文件MD5值得示例,所以牛刀小试自己写一; 使用库前,可能需要预先安装openssl的RPM包。 使用的openssl库所调用的函数有三(可以在头文件md5.h中查看即:/...
  • Linux md5sum比较两个文件夹下面文件是否相同
  • 1、比较文件夹diff,可以直接使用diff命令 [root@~]# diff -urNa dir1 dir2  -a Treat all files as text and compare them line-by-line, even if they do not seem to be text.  -N, --new-file  In directory...
  • Linux文件校验指令md5sum

    千次阅读 2019-06-21 09:50:49
    1. 背景 在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。...md5值是一128位的二进制数据,转换成16进制则是32(1...
  • Linux文件MD5校验

    千次阅读 2019-04-11 19:25:06
    md5sum命令用于生成文件的md5数字摘要,可以验证文件内容是否发生了改变,间接地还可以检验两个文件内容是否完全相同。因为md5sum是读取文件内容来计算校验码的,因此只能验证文件内容,而无法验证文件属性。 md5...
  • 修改文件md5值的简单方法!

    万次阅读 2019-09-03 20:03:52
    cmd命令行下: ...同一目录下存在88.jpgabc.txt 两个文件。new.jpg为新生成的文件(md5码已经改变) copy /b 88.jpg+abc.txt new.jpg 单纯想上传一个文件,由于md5码相同所以上传失败;故改之 ...
  • 获取文件MD5值两个方法

    千次阅读 2015-01-19 19:28:32
    最近想用java调用Linux的md5sum命令来获取Linux文件md5值,查阅资料后发现可以这样实现java调用Linux的shell命令 public String getMd5(String filename){ }String cmd[] = new String[]{"md5sum",filename};
  • Lua 执行命令行获取文件MD5值

    千次阅读 2017-08-01 13:36:49
    出于项目收藏gif图片需求的查重问题,不得不找... md5值是可以的。 看了下资料,在Lua中 os.execute可以执行dos命令,但是返回的是系统状态码,默认输出 io.popen()也可以执行dos命令,但是返回一个文件。eg: lo
  • 【技术篇】文件md5值

    千次阅读 2019-06-15 21:43:51
    前言: 我们以一个wrold文档为例,新建一...然后我在复制了一下这个文件,并将文件名改为yy.docx,然后重复上面的命令去计算这个新文件的md5值,然后得到的是相同的结果,文件的md5值是我在我们一个项目“文件传输...
  • Linuxmd5sum 校验文件完整性

    千次阅读 2018-01-24 15:55:07
    MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir 3.使用说明 umount 命令是mount命令...
  • Linux命令详解:md5sum 命令

    千次阅读 2019-05-13 17:29:57
    MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相 同的报文摘要...
  • 一、 用oppnssl md5 加密字符串和文件的方法。  1. oppnssl md5 加密字符串的方法  a.手动输入命令及过程如下:  #openssl //在终端中输入openssl后回车。  OpenSSL> md5 //输入md5后回车  123456 //接着...
  • 通过md5值检查文件信息是否相同

    千次阅读 2016-10-19 17:02:20
    #MD5值是通过统计一个文件的大小、权限、内容等进行集合得来的值,可以通过比较两个文件MD5值进行比较两个文件是否一致 #通过MD5值进行文件比较 #版本:V1.0 #Date:2016-10-19 #author:salt #email:zwj...
  • md5sum帮助命令: [root@jie openssl]# md5sum --help Usage: md5sum [OPTION]... [FILE]... Print or check MD5 (128-bit) checksums. With no FILE, or when FILE is -, read standard input. -b, --binary ....
  • Linux MD5加密的简单使用

    千次阅读 2020-08-14 10:50:36
    文章目录一. 什么是MD5二. Linux下的简单实现三. 测试一下 最近看到PPP拨号在验证时,有种验证方式,一种是口令验证协商(PAP),另一种是挑战-握手验证协议(CHAP...MD5消息摘要算法(英语:MD5 Message-Digest Algorit
  • linux md5 加密字符串和文件方法

    万次阅读 2014-12-20 10:58:56
    MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相 同的报文摘要...
  • 最近项目需要,需要对客户传过来的文件进行md5
  • md5sum 命令用于计算文件内容的md5值, 是对文件内容逐位计算, 和文件名无关, 因此可以用于文件内容对比, 文件校验. 在进行文件的网路传输时, 可能会由于网络等问题导致丢失数据, 或担心数据包被篡改, 因此当下载文件...
  • linux下,我们经常通过wget,curl等命令在某官方网站下载一个zip或者tar.gz格式文件,有时候,我们不会去关注这个下载文件后面的md5值和sha1值,这两个值其实有很大的用处,他可以帮助我们验证下载的文件是否经过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,177
精华内容 34,470
关键字:

linux比较两个文件的md5值

linux 订阅