我正在编写一个使用 File::Find 来索引网络文件系统的 Perl 脚本(在 Windows 中)。它工作得很好,但是爬取文件系统需要很长时间。我认为在遍历目录之前以某种方式获取目录的校验和会很好,并且校验和与之前运行的校验和相匹配,不要遍历目录。这将消除大量处理,因为此文件系统上的文件不会经常更改。
在我的 AIX 机器上,我使用以下命令:
csum -h MD5 /directory
它返回如下内容:
5cfe4faf4ad739219b6140054005d506 /directory
该命令花费的时间很少:
time csum -h MD5 /directory
5cfe4faf4ad739219b6140054005d506 /directory
real 0m0.00s
user 0m0.00s
sys 0m0.00s
我已经在 CPAN 中搜索了可以执行此操作的模块,但看起来所有模块都会为我提供目录中每个文件的 MD5sum,而不是目录本身。
有没有办法在 Perl 中获取目录的 MD5sum,甚至在 Windows 中,因为我可以从 Perl 调用 Win32 命令?
提前致谢!