`
jaytuzi
  • 浏览: 3789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux shell递归生成文件MD5文件

阅读更多
shell递归生成文件的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


shell递归删除生成的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

分享到:
评论

相关推荐

    Linux系统递归生成目录中文件的md5的方法

    linux下使用md5sum递归生成整个目录的md5 今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下 代码: <?php $path ='/data/www/bbs/source'; $...

    Shell脚本实现从文件夹中递归复制文件

    ### Shell脚本实现从文件夹中递归复制文件 #### 背景介绍 在日常工作中,有时我们可能需要从多层嵌套的文件夹结构中提取特定的文件或者进行数据整理工作。对于这种需求,手动操作显然是低效且耗时的。此时,利用...

    【shell】遍历文件夹下所有文件

    对linux命令tree的简单实现,遍历指定文件夹下的所有文件

    遍历一个文件夹并生成所有文件的MD5

    标题中的“遍历一个文件夹并生成所有文件的MD5”是一个实用的操作,通常用于批量检查文件的完整性。在Python编程语言中,我们可以利用os库和hashlib库来实现这个功能。os库用于遍历文件夹,而hashlib库则提供了MD5...

    linux下递归获取文件下的内容(目录和文件)

    本代码是linux下递归输出指定路径下文件夹和文件内容的,已测试通过,有需要的自己下载!

    使用递归生成文件目录树

    ### 使用递归生成文件目录树 #### 概述 在计算机科学中,文件系统的组织结构通常采用树形结构表示,其中根目录为树的根节点,而子目录和文件则作为分支节点。为了清晰地展示文件系统中的层级关系,本篇文章将介绍...

    计算文件夹下所有文件的MD5值

    批处理脚本可能会使用`for /R`循环来遍历文件,但根据描述,这个脚本应该是非递归的,因此它可能会使用`dir`命令配合`findstr`来列举特定文件夹下的文件,然后逐个计算MD5。 3. **源代码分析** 未提供具体的源代码...

    递归删除文件或子目录

    在计算机编程中,递归是一种强大的技术,常用于解决涉及层级结构的问题,如遍历文件系统、树形数据结构或执行深度优先搜索等。在这个场景中,"递归删除文件或子目录"指的是编写一个程序,它能够遍历并删除指定目录下...

    获取目录下所有文件和文件夹,并计算其MD5值,两个文件夹比较,得出被篡改的目录路径

    总的来说,这个项目涉及了Java的文件I/O操作、递归算法、哈希表的使用以及MD5哈希计算,这些都是Java开发中的基础且重要的技能。通过这个项目,开发者不仅可以巩固这些技术,还可以深入理解文件系统的操作和文件完整...

    matlab开发-递归搜索文件

    在MATLAB中,递归搜索文件是一项非常实用的功能,它允许用户在指定的目录及其子目录下查找符合特定条件的文件或文件夹。这个过程通常涉及到编程中的递归概念,即函数调用自身来解决问题。在MATLAB中,我们可以利用...

    linux shell 命令 源代码

    在Linux操作系统中,Shell是用户与系统交互的接口,提供了命令行界面,允许用户通过输入命令来执行系统操作。Linux Shell命令是操作系统的核心组成部分,它们是预定义的程序,用于执行特定的任务。本资料包包含了...

    C# 递归生成树_TreeView

    本示例中的“C# 递归生成树型菜单”着重讲解如何使用递归方法来动态构建一个`TreeView`控件,结合数据库数据,创建可运行的树形菜单。下面我们将详细探讨这个主题。 1. **递归的理解与应用**: 递归是编程中的一个...

    自己重新封装的C# FTP实现上传,下载,创建文件,文件夹,删除单个文件 MD5校验等

    FTP客户端通常包括上传、下载、创建文件和文件夹、删除文件以及进行MD5校验等多种操作。以下将详细阐述这些知识点。 1. **FTP协议**:FTP是Internet上的标准协议,用于在不同主机之间交换文件。它基于TCP/IP协议栈...

    matlab递归生成树

    使用递归方法生成连通树的matlab小程序,仅供参考,写出来还是比较简单

    Linux&SHELL;基本知识笔试试卷

    ### Linux&SHELL 基本知识 #### Linux 内核编程语言 - **知识点**:Linux 的内核主要是使用 C 语言编写的。虽然现代内核可能包含了使用其他语言编写的组件,但其核心仍然是基于 C 语言。因此,正确答案是选项 B:C...

    详解shell 遍历文件夹内所有文件并打印绝对路径

    在Linux或Unix环境中,Shell脚本是一种强大的工具,能够帮助用户执行一系列任务,如文件管理、进程控制等。其中,遍历文件夹内的所有文件并打印其绝对路径是一项常见需求。本文将详细介绍如何使用Shell脚本来实现这...

    java 递归读取文件夹 读取文件 写文件

    java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...

    C实现Linux中Shell部分命令.zip

    在Linux操作系统中,Shell是一种命令行解释器,它允许用户通过文本输入来执行系统命令。C语言实现Linux Shell的功能是一项有趣的编程挑战,可以深入理解操作系统的工作原理。本项目旨在用C语言实现一些基本的Shell...

    linux下为目录和文件设置权限,包括子目录的循环递归设置

    ### Linux 下为目录和文件设置权限,包括子目录的循环递归设置 #### 知识点一:Linux 文件权限概述 在 Linux 操作系统中,文件权限管理是至关重要的安全特性之一。通过权限管理,我们可以控制不同用户对文件或目录...

Global site tag (gtag.js) - Google Analytics