话题。我试图在不使用 Find 模块和不使用 du 命令的情况下获取目录的大小。这是我目前正在接近它的方式,但它似乎没有返回正确的大小。它返回 418836 字节,但是当我运行 du -s 时,目录大小为 141508。
my $size = dir_size('wp-content');
sub dir_size {
my $dir = shift;
my $size = 0;
opendir(DIR,"$dir");
foreach my $node (grep(!/^\.\.?/,readdir())) {
stat($node);
if(-f $node) {
$size += -s $node;
} elsif(-d $node) {
$size += dir_size("$dir/$node");
}
}
closedir(DIR);
return $size;
}
希望有人能指出我做错了什么。