现在加入有很多很多文件需要测试md5,想看下是否都传输成功了,如何批量生成文件的md5并且逐条对照呢?

下面来简单介绍下

md5sum这个命令有一个选项“-c”

这个选项的意思是check,检查对照目标文件的md5值是否和源文件生成的md5是否相同

下面举一个实例:

192.168.1.11有一个test文件夹,里面存放了大大小小很多的文件,文件夹,现在想将这个文件传到192.168.1.12上

文件已经传过去了,但是后台的日志报错了,想看下是否都传输成功

find test/ -type f -print0 | xargs -0 md5sum > check.md5    

主要说下-print0 和 -0

-print 0 解释:

True; print the full file name on the standard  output,  followed  by  a  null  character (instead of the newline character that -print uses).  This allows file names that contain newlines or other types of white space to  be  correctly  interpreted  by  programs  that process the find output.  This option corresponds to the -0 option of xargs.

大体意思是:会输出完整的文件名称,并以一个空字符为分割,而不是换行,要用特殊的命令来处理输出结果,最直接的就是xargs -0

xargs -0的解释:

Input items are terminated by a null character instead of by whitespace, and  the  quotes and  backslash are not special (every character is taken literally).  Disables the end of file string, which is treated like any other argument.  Useful  when  input  items  might contain  white  space, quote marks, or backslashes.  The GNU find -print0 option produces input suitable for this mode.

大体意思是:输出项由空字符终止,而不是空格,或者换行. 禁用文件字符串的结尾,该字符串与任何其他参数一样。 输入项可能包含空格,引号或反斜杠时很有用。 GNU find -print0选项生成适合此模式的输入。

所以find -print0 和xargs和 -0 是一对

生成的check.md5传输到目的地址,注意目录的位置要和源地址的一样,如果源地址是/home/test/下生成的check.md5,那么目的地址也就是/home/test/下对照md5,这里容易出错

执行如下语句,检查文件md5是否相同

md5sum -c check.md5 > complete.log

文件执行成功后,会提示有几个不匹配

md5sum: WARNING: 3 computed checksums did NOT match

这里提示就有三个有问题的,不匹配的直接grep就可以

grep FAILED complete.log

就知道那个文件出现问题了!

【Linux】md5sum 生产所有文件的md5值,并对照目标文件是否相同的更多相关文章

  1. JAVA 获取文件的MD5值大小以及常见的工具类

    /** * 获取文件的MD5值大小 * * @param file * 文件对象 * @return */ public static String getMD5(File file) { FileI ...

  2. 查询linux文件的MD5值

    Linux下查询文件的MD5值:md5sum xxx.iso.md5 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algor ...

  3. linux shell 命令获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...

  4. 计算文件的MD5值和sha256值

    1.计算文件的MD5值. 1)linux系统计算 MD5值:md5sum+文件名 sha256值:sha256su+文件名 2)windows系统计算 MD5值:利用Notepad++工具计算 sha ...

  5. 计算某个目录下所有文件的MD5值

    #!/usr/bin/env python #-*- coding:utf-8 -*- ''' 计算某个目录下所有文件的MD5值 ''' import os import sys import has ...

  6. python计算文件的md5值

    前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当 ...

  7. asp.net和js读取文件的MD5值的方法

    前言 文件的md5值,即文件签名,为了验证文件的正确性,是否被恶意篡改等.每个文件有一个唯一的md5值. 最近公司开发的app文件包的校验就有用到文件md5值. 一.asp.net获取 ①和上传文件一 ...

  8. C#计算文件的MD5值实例

    C#计算文件的MD5值实例 MD5 是 Message Digest Algorithm 5(信息摘要算法)的缩写,MD5 一种散列(Hash)技术,广泛用于加密.解密.数据签名和数据完整性校验等方面 ...

  9. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

随机推荐

  1. css进阶 02-CSS布局

    02-CSS布局 #前言 #常见的布局属性 (1)display 确定元素的显示类型: block:块级元素. inline:行内元素. inline-block:对外的表现是行内元素(不会独占一行) ...

  2. Yii2 给表添加字段后报错 Getting unknown property

    手动在数据库中添加了image字段 然后再模型类Image中的 rule方法也将image的验证规则放进去了 但是在 $model = new Image 后,使用$model->iamge 还 ...

  3. MySQL_CRUD_In_Terminal

    MySQL的CRUD操作 从Terminal中,可以对数据库进行链接,无需GUI界面就可以对数据库进行相关操作.对于Linux.Windows.MacOS,也可以使用可视化软件Navicat.MySQ ...

  4. tep用户手册帮你从unittest过渡到pytest

    unittest和pytest是Python的2个强大的测试框架,经常用来做UI自动化或接口自动化.unittest是PyCharm的默认集成工具,也是我们大多数人入门自动化的首选框架.pytest提 ...

  5. MySQL:判断逗号分隔的字符串中是否包含某个字符串 && 如何在一个以逗号分隔的列表中的一个字段中连接MySQL中的多对多关系中的数据

    需求:      sql语句中,判断以逗号分隔的字符串中是否包含某个特定字符串,类似于判断一个数组中是否包含某一个元素, 例如:判断 'a,b,c,d,e,f,g' 中是否包含 'a',sql语句如何 ...

  6. 在jsp页面嵌入java代码让某些div显示或者隐藏

    <!--监测评价人显示评价人信息 --> <% if("D3".equals(role_flag)){%> <div id="crud&qu ...

  7. Kubernetes官方java客户端之一:准备

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. 你的项目中使用过哪些JSTL标签?

    项目中主要使用了JSTL的核心标签库,包括< c:if>.< c:choose>.< c: when>.< c: otherwise>.< c:f ...

  9. 彻底搞懂Java开发工具包(JDK)安装及环境变量配置

    一.Java 和 JDK 是什么 Java:Java是一种优秀的程序设计语言,它有非常多的语言特性,如简单性.面向对象.可移植性等.Java 并不只是一种语言,而是一个完整的平台,它有一个庞大的库,其 ...

  10. Redis学习之路(二)Redis集群搭建

    一.Redis集群搭建说明 基于三台虚拟机部署9个节点,一台虚拟机三个节点,创建出4个master.4个slave的Redis集群. Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式) ...