如何在Perl中处理软链接

时间:2017-08-28 11:00:52

标签: perl

您好我正在编写一个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;

0 个答案:

没有答案