Netsky's Blog

  • *NIX相关
  • 心情随笔
  • 无线安全
  • 软件交流
  • 未分类
  1. 首页
  2. *NIX相关
  3. 正文

shell递归生成文件的MD5文件

2019年8月22日 1406点热度 1人点赞 0条评论

批量生成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
标签: Linux批量生成md5
最后更新:2019年8月22日

Netsky

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

Netsky

这个人很懒,什么都没留下

实用工具
人民币大写电脑版 人民币大写手机版 DNSpod API获取PHP版 DNSpod API获取HTML版 Dnspod 动态解析
目录
  • *NIX相关
  • 心情随笔
  • 无线安全
  • 未分类
  • 群晖
  • 虚拟化
  • 软件交流

COPYRIGHT © 2022 Netsky's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang