linux – 有没有更聪明的tar或cpio来有效地检索存档中存储的文件?

我使用tar来存档一组非常大(多GB)的bz2文件.

如果我使用tar -tf file.tar列出存档中的文件,则需要很长时间才能完成(约10-15分钟).

同样,cpio -t< file.cpio需要很长时间才能完成,加上或减去几秒钟. 因此,从存档中检索文件(例如通过tar -xf file.tar myFileOfInterest.bz2)也很慢. 是否有存档方法可以随时保存存档中的“目录”,以便可以快速检索存档中的单个文件? 例如,某种目录存储指向存档中特定字节的指针,以及要检索的文件的大小(以及任何其他特定于文件系统的详细信息). 是否有一个工具(或tar或cpio的参数)允许有效检索存档中的文件?

最佳答案
tar(以及cpio和afio和pax以及类似程序)是面向流的格式 – 它们旨在直接流式传输到磁带或通过管道传输到另一个进程.虽然理论上可以在文件/流的末尾添加一个索引,但我不知道任何版本(尽管它会是一个有用的增强)

它对现有的tar或cpio存档没有帮助,但还有另一个工具dar(“磁盘存档”)可以创建包含这种索引的存档文件,并且可以让您快速直接访问存档中的各个文件.

如果您的unix / linux-dist中不包含dar,您可以在以下位置找到它:

http://dar.linux.free.fr/

转载注明原文:linux – 有没有更聪明的tar或cpio来有效地检索存档中存储的文件? - 代码日志