shell递归生成文件的MD5文件

批量生成MD5文件

#! /bin/bash  
  
if [ -n "$1" ]; then  
  DIR_ROOT="$1"  
else  
  DIR_ROOT=$PWD  
fi  
  
end_with(){  
  echo $1 | grep $2 >/dev/null 2>&1  
  if [ $? -eq 0 ];then  
    return 1  
  fi  
  return 0  
}  
  
dir_md5(){  
if [ "$(ls -A $1)" ]; then  
  declare -i i=0  
  declare -a my_array  
  for file in ` ls $1 `  
  do  
     if [ -d $1"/"$file ]; then  
    echo $i  
    my_array[$i]=$1"/"$file  
    i=` expr $i + 1 `  
     else  
        if end_with "$file" "md5\.sh$"; then  
           if end_with "$file" "md5_d\.sh$"; then  
          cd $1"/"  
              md5sum $file > $file.md5  
           fi  
        fi  
     fi  
  done  
    
  for my_dir in ${my_array[*]}  
  do  
      dir_md5 $my_dir  
      cd $1"/"  
  done   
fi  
}  
  
sh +x md5_d.sh $DIR_ROOT  
  
dir_md5 $DIR_ROOT 

删除MD5文件

#! /bin/bash  
  
if [ -n "$1" ]; then  
  DIR_ROOT="$1"  
else  
  DIR_ROOT="."  
fi  
  
dir_md5(){  
  for file in $1/*  
  do  
     if [ -d $file ]; then  
        dir_md5 $file  
     else  
        #左边最长匹配模式  
        if [ ${file##*.} = "md5" ]; then  
            rm -f $file  
        fi  
     fi  
  done  
}  
  
dir_md5 $DIR_ROOT  

获取整个目录的MD5值到一个文件中

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

校验md5值

md5sum -c my.md5
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享