为什么压缩包的目录结构消失,当我使用Perl的档案::焦油?
-
20-09-2019 - |
题
我使用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)不能重现该问题。
不隶属于 StackOverflow