#!/bin/sh
if [ $# != "1" ] || [ $1 = "--help" ];then
echo "Sytax:md5-sum.sh directory";
exit;
fi
echo "Begin"
#file-list
list=$(find $1);
#rm
$(rm -fr file_tmp.txt)
$(rm -fr file_result.txt)
#Loop
for item in $list;
do
if [ -f "${item}" ];then
md5str="$(md5sum ${item} 2>/dev/null | awk '{print $1}')";
filesize="$(du -sk ${item} 2>/dev/null | awk '{print $1}')";
echo "${item},${filesize},${md5str}" >> file_tmp.txt
fi
done
echo "End"
#
if [ $# != "1" ] || [ $1 = "--help" ];then
echo "Sytax:md5-sum.sh directory";
exit;
fi
echo "Begin"
#file-list
list=$(find $1);
#rm
$(rm -fr file_tmp.txt)
$(rm -fr file_result.txt)
#Loop
for item in $list;
do
if [ -f "${item}" ];then
md5str="$(md5sum ${item} 2>/dev/null | awk '{print $1}')";
filesize="$(du -sk ${item} 2>/dev/null | awk '{print $1}')";
echo "${item},${filesize},${md5str}" >> file_tmp.txt
fi
done
echo "End"
#
awk 'BEGIN {FS=","}{if (!($2,$3) in tarry){tarry[$2,$3]=$1}else{tarry[$2,$3]=tarry[$2,$3]","$1}}END{for(k in tarry){split(k,tarr2,SUBSEP);print tarr2[1],"*",tarr2[2],"=",tarry[k];}}' file_tmp.txt >> file_result.txt
本文介绍了一个用于批量计算目录下所有文件MD5值的Shell脚本。该脚本能够遍历指定目录内的所有文件,并记录每个文件的大小及MD5校验值,最后输出可能重复的文件列表。


被折叠的 条评论
为什么被折叠?



