当我使用 Perl 的 Archive::Tar 时,为什么 tarball 目录结构会消失?
我正在使用 Perl 脚本修改 .tar 中的某些文件,并且生成的 .tar 中的目录结构消失。 消除越来越多的代码,我已经做到了重现此问题所需的全部内容是
my $data_tar = Archive::Tar->new('data.tar');
$data_tar->write('modified_data.tar');
两个 .tar 文件都包含所有文件,但是文件和子目录所在目录的指示丢失了。
我已经浏览了 Archive::Tar 的文档和 src,但我真的不明白发生了什么事。
我在 win32、tar 1.12 和 Archive::Tar 1.54 上使用 perl 5.10.0。 我在编辑器中检查了.tar文件,data.tar包含dir/和dir/file.txt,但在modified_data.tar中它们显示为dir和file.txt,所以我原来的tar看起来没问题。
你们中有人以前见过这个或者有什么想法吗?
I'm using a Perl script to modify some files inside a .tar, and the directory structure inside the resulting .tar disappears.
Eliminating more and more code I've come as far as all that's required to reproduce this is
my $data_tar = Archive::Tar->new('data.tar');
$data_tar->write('modified_data.tar');
Both .tar-files have all the files, however the indication of what directories the files and subdirectories were located in are lost.
I've looked through the docs and src for Archive::Tar but I really don't understand what's going on.
I'm using perl 5.10.0 on win32, tar 1.12 and Archive::Tar 1.54.
I examined the .tar-files in an editor and the data.tar contains dir/ and dir/file.txt, but in the modified_data.tar they show up as dir and file.txt so my original tar seems ok.
Anyone of you that have seen this before or have any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无法使用创建的
data.tar
进行复制:正如@~quack 所指出的,文档说明:
Cannot replicate using
data.tar
created with:As @~quack notes, the docs state:
我尝试了你的脚本,但无法重现该问题(在 FreeBSD 上使用 Perl 5.10)。
I tried your script but could not reproduce the problem (on FreeBSD using Perl 5.10).