tar.gz文件列表的速度是否取决于tar大小?

时间:2011-06-30 19:01:23

标签: tar

我正在使用tf函数列出tar.gz文件的内容。它非常大~1 GB。以年/月/日文件结构组织的文件大约有1000个。

列表操作需要退出一段时间。看起来像列表应该很快。任何人都可以在内部启发我吗?

谢谢 -

2 个答案:

答案 0 :(得分:2)

例如,查看wikipedia以验证tar中的每个文件都在标头之前。要验证tar内的所有文件,必须读取整个tar。

在tar的开头没有“索引”来表示它的内容。

答案 1 :(得分:2)

Tar具有简单的文件结构。如果要列出它们,则必须解析所有文件。 如果要查找一个文件,可以停止进程。但必须确保存档只有一个文件版本。这在打包存档上是典型的,因为不支持添加。 例如,你可以这样做:

tar tvzf somefile.gz|grep for find something|\
while read file; do foundfile="$file"; last; done

在这个循环中会断开并且不会读取所有内容,而只是从开始到文件位置。

如果您必须对列表执行更多操作,请将其保存到任何临时文件中。如果需要,你可以gzip这个文件以保存地方:

tar tvzf somefile.gz|gzip >temporary_filelist.gz