在 perl 中提取 tar.gz 文件

Posted

技术标签:

【中文标题】在 perl 中提取 tar.gz 文件【英文标题】:Extract tar.gz file in perl 【发布时间】:2013-05-03 05:21:25 【问题描述】:

我有一个大小约为 60 MB 的 tar.gz 文件...我需要提取该 tar.gz 文件中的 XML 文件...但是在使用以下命令时出现内存不足错误..

use Archive::Extract;
$TAR_FILE_WORK_PATH='C:\..\..\..\Perl\IN\test_sample.xml.tar.gz';
$WORK_DIR = 'C:\..\..\..\Perl\IN\Work';
my $extract_obj = Archive::Extract->new(archive => $TAR_FILE_WORK_PATH, type => 'tgz');
if (!($extract_obj->extract(to => $WORK_DIR)))
print "Error extracting tar file\n";

else 
print "Extracted tar file $LATEST_FILE_NAME successfully";

请帮助我以有效的方式将 tar.gz 文件提取到不同的目录....

【问题讨论】:

我也尝试过使用 Archive::Tar .. 下面是代码 .. 使用 Archive::Tar;我的 $tar = Archive::Tar->new; $tar->read('C:/Srinivas/../../../Perl/IN/Work/test_sample.xml.tar.gz'); $tar->extract();我仍然遇到内存不足错误......感谢一些回应...... 【参考方案1】:

接下来的问题的答案:

Out Of Memory while extracting tar.gz file using perl

他们提到使用 PREFER_BIN 可能会有所帮助。

【讨论】:

以上是关于在 perl 中提取 tar.gz 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP,我如何识别(如果适用,解压缩)并从 .tar、.gz、.tar.gz、.zip 文件中提取文件?

如何从tar.gz包中,提取某些文件?

如何提取 filename.tar.gz 文件

从 Ant tar 任务打包的 .tar.gz 中提取时包含非拉丁字符的文件名的编码

从存档中提取精确文件的快速方法

bash:仅提取 tar.gz 存档的一部分