Linux 如何使用File::stat模块在Perl中查找文件夹大小?
下面是使用模块查找文件大小的Perl脚本: 我得到了正确的文件大小输出,但这段代码不适用于查找文件夹大小。它只计算文件夹中的文件数。例如,如果文件夹Linux 如何使用File::stat模块在Perl中查找文件夹大小?,linux,perl,Linux,Perl,下面是使用模块查找文件大小的Perl脚本: 我得到了正确的文件大小输出,但这段代码不适用于查找文件夹大小。它只计算文件夹中的文件数。例如,如果文件夹/home/dinkar中有八个文件,那么我得到的文件夹输出是8,这是错误的 我想使用File::stat module在Perl中查找文件夹大小。请提供帮助。该模块只不过是内置stat操作员更容易访问的界面。因为stat不提供检索目录“大小”的方法,File::stat 您所说的目录大小是指它包含的所有文件的大小之和,或者递归地位于它下面的目录中的
/home/dinkar
中有八个文件,那么我得到的文件夹输出是8,这是错误的
我想使用File::stat module
在Perl中查找文件夹大小。请提供帮助。该模块只不过是内置stat
操作员更容易访问的界面。因为stat
不提供检索目录“大小”的方法,File::stat
您所说的目录大小是指它包含的所有文件的大小之和,或者递归地位于它下面的目录中的所有文件的大小之和。您必须手动计算,最好的工具可能是
本程序演示
use strict;
use warnings;
use 5.010;
use File::Find;
my $total;
find(sub { $total += -s if -f }, '/home/dinkar');
say $total;
如果有许多文件需要测量,那么这可能需要几秒钟才能完成。该模块只不过是内置stat
操作员更容易访问的接口。因为stat
不提供检索目录“大小”的方法,File::stat
您所说的目录大小是指它包含的所有文件的大小之和,或者递归地位于它下面的目录中的所有文件的大小之和。您必须手动计算,最好的工具可能是
本程序演示
use strict;
use warnings;
use 5.010;
use File::Find;
my $total;
find(sub { $total += -s if -f }, '/home/dinkar');
say $total;
如果有许多文件需要测量,那么这可能需要几秒钟才能完成。这是一个linux问题,而不是Perl问题:linux中的文件夹只是一个包含文件名的文件,因此正如您所注意到的,大小就是这些名称的大小 Linux系统与UNIX一样,对文件和目录没有区别,因为目录只是一个包含其他文件名的文件
如果你想知道目录中所有文件的大小,你必须用readdir读取所有文件,然后用File::stat汇总找到的文件大小。这是一个linux问题,而不是Perl问题:linux中的文件夹只是一个包含文件名的文件,因此大小就是这些文件名的大小,正如你所注意到的 Linux系统与UNIX一样,对文件和目录没有区别,因为目录只是一个包含其他文件名的文件
如果你想知道目录中所有文件的大小,你必须用readdir读取所有文件,然后用File::stat汇总找到的文件大小。OP询问如何使用Perl查找目录的总大小。我不认为这是一个Linux问题。他们使用的模块是
File::stat
,而不是File::stat
。不幸的是,它们是两个不同的模块(这意味着不能同时在Windows上安装这两个模块)。更正了输入错误。好的,关于Linux目录的误解只是一个问题。OP询问了如何使用Perl查找目录的总大小。我不认为这是一个Linux问题。他们使用的模块是File::stat
,而不是File::stat
。不幸的是,它们是两个不同的模块(这意味着不能同时在Windows上安装这两个模块)。更正了输入错误。好的,关于Linux目录的误解只是一个问题。我们不能用File::stat模块代替File::find模块吗?不。我解释了原因。当模块选择错误时,为什么您如此渴望使用File::stat
?这是家庭作业吗?不,谢谢。我刚才澄清了。对不起,我没有看到您的解释-f是文件,-d是目录。因此,您的程序演示如何查找文件大小而不是文件夹大小?正如我所说,“文件夹大小”通常是指它包含的文件大小的总和。如果您指的是目录节点本身占用的空间,那么我帮不了您。我们不能使用File::stat module而不是File::find module查找吗?不。我解释了原因。当模块选择错误时,为什么您如此渴望使用File::stat
?这是家庭作业吗?不,谢谢。我刚才澄清了。对不起,我没有看到您的解释-f是文件,-d是目录。因此,您的程序演示如何查找文件大小而不是文件夹大小?正如我所说,“文件夹大小”通常是指它包含的文件大小的总和。如果你是指目录节点本身占用的空间,那么我帮不了你。