有没有一种快速的方法来获取大 TAR 中的最后一个文件?

and*_*ieb 4 linux tar

假设我有一个数 GB 的 tar 文件,但我也碰巧知道写入存档的最后一个文件是我需要的重要文件。由于 tar 文件是按顺序附加的,有没有一种方法可以让 tar 从最后读入存档以找到这个文件,而不是从头开始读取数千兆字节的不相关数据?

小智 6

不,不幸的是没有。来自维基百科

与其他存档格式相比,tar 格式的另一个弱点是关于文件内容的信息(各种“目录”)没有集中位置。因此,要列出存档中文件的名称,必须通读整个存档并查找文件开始的位置。此外,要从存档中提取一个小文件,而不是能够在表中查找偏移量并直接转到该位置,就像其他存档格式一样,使用 tar,必须通读整个存档,寻找位置所需文件的开始位置。对于大型 tar 档案,这会导致很大的性能损失,使得 tar 档案不适合经常需要随机访问单个文件的情况。