按文件名从 tar.gz 中提取

Extract from tar.gz by file name

我里面有很多文件。tar.gz。

是否可以(以编程方式)通过文件名提取文件,而无需解压缩其他文件的开销?

我会把回复分成两部分

Is it (programmatically) possible to extract a file by its filename

是的,可以通过文件名提取文件。

tar xzf tarfile.tar filename

without the overhead of decompressing other files?

为了从压缩的 tar 文件中提取文件,tar 程序必须找到您想要的文件。如果那是 tar 文件中的第一个文件,那么它只需要解压缩它。如果该文件不是 tar 文件中的第一个文件,则 tar 程序需要扫描 tar 文件,直到找到您想要的文件。为此必须解压缩 tar 文件中的前面的文件。这并不意味着它必须将它们提取到磁盘或在内存中缓冲这些文件。它将流式传输解压缩,以便它们的内存开销不显着。