Linux计算文件md5值脚本-多种命令结合使用记录
脚本内容
#!/bin/bash
echo "[-] 计算 rpm 软件包 md5 值写入文件中... 目录: ${1:-未指定}"
FILE_DIR=${1:?'[x] 请输入需要检车md5值的文件所在的目录'}
MD5_FILE=md5file
#FILE_LIST=`find ${FILE_DIR} -type f`
#for file in $FILE_LIST; do
# echo `md5sum $file`|awk '
#{
# count=split($2,arr,"/")
# printf "md5Val: %s\tfilename: %s\n",$1,arr[count]
#}
#' >> ${FILE_DIR}/md5file
#done
# 上面注释了的代码,通过下面这一行就可以实现,结合xargs与管道符
find ${FILE_DIR} -maxdepth 1 -type f|grep -v ${MD5_FILE}|xargs -I file md5sum file|awk '{count=split($2,arr,"/");printf "md5Val: %s\tfilename: %s\n",$1,arr[count]}' > ${FILE_DIR}/${MD5_FILE}
[ `ls -l ${FILE_DIR}/${MD5_FILE}|awk '{print $5}'` = '0' ] && rm -f ${FILE_DIR}/${MD5_FILE}