3

这就是我目前递归删除文件和目录的方式

foreach my $row(keys %$rows)
{
    my $md5 = $rows->{$row}->{'md5'};
    my $path = "/some/path/jpg/".substr( $md5, 0, 3 )."/$md5";

    `rm -rf $path`;
    print "removed - ".$path."\n";
}

有数十万个文件/目录需要删除,所以我希望看到一个更好的解决方案,而不是为每个文件/目录调用“rm -rf”。

也许组合数组中的文件/目录列表,然后将此数组传递给单个“rm -rf”调用?

4

1 回答 1

10

rmtreeFile::Path使用。除了可移植之外,它还使用 Perl 的内置unlink,而不是每次您需要删除目录时都启动整个 shell,这就是您现在正在做的事情。

于 2011-06-07T23:38:45.420 回答