我需要为我正在编写的新应用程序设计一个文件格式。
这个文件将需要包含许多其他文本文件,大多数是文本,但也可以是其他格式。
自然而然地,压缩的tar文件似乎很合适。
问题在于,我想要能够从文件中非常快速地检索一些数据,但从tar.gz文件中获取一个特定的文件似乎需要比应该更长的时间。我假设这是因为即使我只想要一个文件,它也必须解压整个文件。当我只有一个常规的未压缩tar文件时,我可以非常快速地获取那些数据。
假设我需要快速获取的文件名为data.dat。
例如,命令...
例如,命令...
tar -x data.dat -zf myfile.tar.gz
... 是我不希望花费太长时间的部分。
MP3文件有id3数据,JPEG文件有exif数据,可以快速读取而无需打开整个文件。 我希望我的data.dat文件也能以类似的方式可用。
我想,我可以将其保留为未压缩状态,并与myfile.tar.gz中的其他文件分开。 然后,我可以创建一个data.dat和myfile.tar.gz的tar文件,希望由于它位于外部tar文件的头部并且未经压缩,因此可以更快地检索到该数据。
这样做听起来对吗?将压缩的tar文件放在另一个tar文件中?
基本上,我的需求是具有对一个特定文件快速访问的存档类型文件。 Tar可以很好地实现这一点,但我也希望该数据被压缩,一旦这样做,我就无法快速访问该数据了。 是否有其他存档格式可以给我需要的快速访问?
顺便说一下,这个应用程序将用Python编写。如果解决方案要求使用自己的二进制格式重新发明轮子,我熟悉C,并且编写Python模块没有问题。理想情况下,我只会使用tar、dd、cat、gzip等。
谢谢, ~Eric