【问题标题】:perl untar single fileperl 解压单个文件
【发布时间】:2015-07-17 01:10:06
【问题描述】:

因此,我的代码在这里遇到问题,不确定我到底做错了什么,我将它搜索文件的两个参数传递给它,但它总是不存在。

我把它传给文件

perl restore.cgi users_old_52715.tar.gz Ace_Walker

我向你保证,它没有找到它存在的文件。

#!/usr/bin/perl
use Archive::Tar;

my $tarPath    = $ARGV[0];
my $playerfile = $ARGV[1].".ini";



my $tar = Archive::Tar->new($tarPath);
if ($tar->contains_file($playerfile)) {
    $tar->read($tarPath);
    $tar->extract_file($playerfile, './' );
    print "Successfully restored $playerfile to production enviroment\n";
    exit 0;
}else{
    print $playefile." does not exist in this archive!\n";
    exit 0;
}

【问题讨论】:

  • 尝试使用绝对路径而不是相对路径。
  • 成功了,谢谢 =)

标签: linux perl archive-tar


【解决方案1】:

只写Scott Huntercomment作为答案:

尝试使用绝对路径而不是相对路径。

【讨论】:

    【解决方案2】:
    if( $tar->extract_file($playerfile, './'.$playerfile )){ 
      print "Successfully restored $playerfile to production enviroment\n";
    }
    exit 0;
    

    man Archive::Tar

    $tar->extract_file($file, [$extract_path])
    写入一个条目,其名称等同于提供给磁盘的文件名。可选地采用第二个参数,即条目将被写入的完整本机路径(包括文件名)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多