我使用Perl脚本来修改的.tar内的一些文件,并且将所得的.tar内的目录结构消失。 消除越来越多的代码,我来尽可能的需要的一切重现,这是

my $data_tar = Archive::Tar->new('data.tar');
$data_tar->write('modified_data.tar');

两者的.tar,文件拥有所有的文件,哪些目录中的文件和子目录都位于丢失然而指示。

我已经通过文档看起来和src为档案::焦油但我真的不明白发生了什么事情。

我用win32上,焦油1.12和存档::焦油1.54的Perl 5.10.0。 我检查了的.tar,文件的编辑器和data.tar包含DIR /和dir / file.txt的,但在modified_data.tar它们显示为DIR和file.txt的,所以我原来焦油似乎确定。

这之前已经看到了这一点还是有人对你有什么想法?

有帮助吗?

解决方案

C:\Temp> perl -v

This is perl, v5.10.1 built for MSWin32-x86-multi-thread
(with 2 registered patches, see perl -V for more detail)
C:\Temp> perl -MArchive::Tar -e "print $Archive::Tar::VERSION"
1.52

不能复制使用具有创建data.tar

C:\Temp> tar --version
tar (GNU tar) 1.21

作为@〜嘎嘎便签,文档状态

  

需要注意的是GNU焦油早于1.14版本不符合POSIX头前缀很好应付。如果使用这样的版本,考虑设置 $Archive::Tar::DO_NOT_USE_PREFIX 变量true

其他提示

我想你的脚本,但(使用Perl 5.10在FreeBSD)不能重现该问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top