当前位置:  开发笔记 > 编程语言 > 正文

如何使用Perl的Archive :: Tar来tar文件大于物理内存的文件?

如何解决《如何使用Perl的Archive::Tar来tar文件大于物理内存的文件?》经验,为你挑选了2个好方法。

我正在使用Perl的Archive :: Tar模块.它的问题在于它将所有内容都拉到内存并进行归档,然后写入文件系统,因此可以归档的最大文件大小有限制.大多数时候,它说内存不足.在GNU tar的情况下,它需要文件块,将其存档并将其写入内存,以便它可以处理任何大小的文件.我怎么能用Perl的Archive :: Tar模块做到这一点.



1> cjm..:

看起来像Archive :: Tar :: Wrapper是你最好的选择.我自己没有尝试过,但它使用了系统的tar可执行文件,并没有将文件保存在内存中.

与Chas相反.Owen的回答,Archive :: Tar :: Streamed 确实将文件保存在内存中,并且不使用您的系统tar.它实际上在内部使用Archive :: Tar,但它一次处理一个文件(利用tar档案可以连接的事实).这意味着Archive :: Tar :: Streamed可以处理大于内存的归档,只要归档中的每个单独文件都适合内存.但这不是你要求的.



2> Chas. Owens..:

看起来有一个不同的模块不使用内存结构:Archive :: Tar :: Streamed.缺点是它需要在运行的系统上使用tar.不过,它本身就比傀儡穿上tar更好.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有