侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

linux下使用md5sum递归生成整个目录的md5 [原创]

2023-12-21 星期四 / 0 评论 / 0 点赞 / 146 阅读 / 5235 字

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

linux下使用md5sum递归生成整个目录的md5

今天要用md5sum操作目录,递归生成目录下所有文件的md5值,结果发现它不支持递归操作于是写了个php脚本处理下

代码:

 

<?php   

  

$path ='/data/www/bbs/source';   

$outfile = 'file.md5';   

get_file_md5($path, $outfile);   

  

function get_file_md5($path, $outfile)   

{   

    $path = rtrim($path, '/');   

    if(function_exists('scandir'))   

    {   

        $files = scandir($path);   

        foreach($files as $v)   

        {   

            if($v != '.' && $v != '..')   

            {   

                $file = $path.'/'.$v;   

                if(is_dir($file))   

                {   

                    get_file_md5($file, $outfile);   

                }else  

                {   

                    file_put_contents($outfile, md5_file($file)."  ".$file."/n", FILE_APPEND);   

                }   

            }   

        }   

    }else  

    {   

        $files = opendir($path);   

        while(($f = readdir($files)) !== false)   

        {   

            if($f == '.' || $f == '..')   

                continue;   

            $file = $path.'/'.$f;   

            if(is_dir($file))   

            {   

                get_file_md5($file, $outfile);   

            }else  

            {   

                file_put_contents($outfile, md5_file($file)."  ".$file."/n", FILE_APPEND);   

            }   

        }   

        closedir($files);   

    }   

}  

注意:生成的md5值和文件之间是两个空格,否则导致错误如下

 

md5sum: file1.md5: no properly formatted MD5 checksum lines found  

在来个更简单的,使用linux的find命令一句搞定

代码:

 

find /data/www/bbs/source -type f -print0 | xargs -0 md5sum > file2.md5  

测试

 

md5sum -c file1.md5  

md5sum -c file2.md5  

如图所示

 

这样把所有检测结果输出到屏幕上来了,如果最后一条显示这样的信息 md5sum: WARNING: 2 of 1147 computed checksums did NOT match 则说明在总共1147条中有2条是不符合的

然后我们可以

 

md5sum -c file1.md5 | grep FAILED  

就很容易知道是哪些文件的改过

感谢观看 兄弟连教育 分享

www.itxdl.cn

广告 广告

评论区