您好我正在编写一个Perl脚本来搜索指定目录中的文件,我使用File :: Find来做同样的事情。但是发生的事情是我正在搜索的文件夹指向软链接,如果我给出了软链接路径,它就能正确找到文件。但是,如果我给文件夹路径,它说文件未找到。我还提到了下面的脚本。如何知道我们正在搜索的文件夹/目录是否指向软链接。如果它指向那么如何获得该软链接路径以继续搜索。
#!/pkg/qct/software/perl/5.22.0/bin/perl -w
##!usr/bin/perl
use strict;
#use warnings;
use File::Find;
my $gds_file_num;
my @gds_file;
our $dir = "/<path>/";
my @files_list;
use 5.010;
open( my $fh, '<', "data.txt") or die "Can't open data.txt: $!";
# -----------------------------------------------------------------------------
# Find the file from given directory path
# -----------------------------------------------------------------------------
sub find_file {
my $file_name = $_[0];
my $dir_path = $_[1];
my @result;
undef @result;
print "file=$file_name dir=$dir_path\n";
find ( sub {
return unless /$file_name$/;
push @result, $File::Find::name;
}, $dir_path );
if(($result[0] ~~ undef)){
print "[Warn] : File not exist : $file_name is not available under $dir_path\n";
return 0;
}
else {
return $result[0];
}
}
while ( my $line = <$fh> ) {
# chomp $line;
if ( $line =~ /g0hd/ ) {
print $line;
}
}
close $fh;