最近,后端在整理bantuhome的数据,他们copy了文件后,怕文件有问题,想对所有的文件进行md5值验证,但是由于子目录太多太深,用基本的md5sum ./*的方法不行,因为还有目录,就会跳过了。可以用下面的方法进行处理。
find ./ -type f -print0 | xargs -0 md5sum >md5.txt
这里的重点就是find ./ -type f -print0 | xargs -0,平时很少用到该方法
find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个'\n',所以输出结果是一行一行的。当使用了-print0之后,就变成一行了。然后xargs -0表示xargs用NULL来作为分隔符。这样前后搭配就不会出现空格和换行符的错误了
注:平时真没有注意有-print0的这个功能,mark一下。
验证文件是否有变,我们可以用md5sum -c md5.txt | grep -i failed 只要没有failed,就表示文件没有被篡改。