См. perldoc perlfunc -X
для обновления операторов проверки файлов Perl.Вот что вам нужно:
-s File has nonzero size (returns size in bytes).
Простой скрипт, показывающий, как использовать File::Find
:
#!/usr/bin/perl -w
use strict;
use File::Find;
# $ARGV[0] is the first command line argument
my $startingDir = $ARGV[0];
finddepth(\&wanted, $startingDir);
sub wanted
{
# if current path is a file and non-empty
if (-f $_ && -s $_)
{
# print full path to the console
print $File::Find::name . "\n";
}
}
В этом примере у меня вывод идет на консоль.Чтобы передать его в файл, вы можете просто использовать перенаправление вывода оболочки, например ./findscript.pl /some/dir > somefile.out
.