我如何编写 Perl 脚本来计算目录中每个文件的 MD5 和? [关闭]

2024-04-21

有没有办法编写Perl脚本来计算目录中每个文件的MD5sum?

如果是这样,我该怎么做?


有很多方法可以做到这一点,但归结为您需要执行的两个操作。您首先需要找到要运行检查的文件列表,然后需要对每个文件运行 md5sum 检查。有很多方法可以做到这一点,但以下方法应该可以满足您的需求。

#!/usr/bin/perl

use strict;
use warnings;
use Digest::MD5 qw(md5_hex);

my $dirname = "/home/mgreen/testing/";
opendir( DIR, $dirname );
my @files = sort ( grep { !/^\.|\.\.}$/ } readdir(DIR) );
closedir(DIR);

print "@files\n";

foreach my $file (@files) {
    if ( -d $file || !-r $file ) { next; }
    open( my $FILE, $file );
    binmode($FILE);
    print Digest::MD5->new->addfile($FILE)->hexdigest, " $file\n";
    close($FILE);
}

上面的代码将获取目录中每个文件的 md5sum 并跳过任何子目录并将其打印到 STDOUT。 MD5校验和部分然后由摘要::MD5 http://perldoc.perl.org/Digest/MD5.html我认为您最终正在寻找的模块。

我确实喜欢你的问题,因为它是开放式的,有很多可能的解决方案,比如“我如何在 perl 中做到这一点?”问题,所以我相信您会得到很多可能的解决方案,我很可能会在稍后回家时更新我的​​解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何编写 Perl 脚本来计算目录中每个文件的 MD5 和? [关闭] 的相关文章

随机推荐