tar:排除 gzip 文件,并且不要尝试对其进行gunzip

tar:排除 gzip 文件,并且不要尝试对其进行gunzip

当我提取 tar 文件时,我想跳过一个大的 gzip 文件,但每次 tar 开始枪压缩它以查看其内部时。

即使我只是尝试查看 tar 内部,似乎也开始对其进行压缩,例如:

tar -tvf my.tar.gz --exclude="huge_mysql_file.gz"

有什么技巧可以完全跳过该文件吗?当 tar 到达该 gz 文件时,我看到 gzip 正在运行。

答案1

my.tar.gz是一个压缩焦油文件。柏油是“磁带存档”的缩写。所以文件my.tar.gz必须在gzip -d之前解压柏油文件可以读取。无法随机访问 gzip 文件的内容。我真的不知道 gzip 文件格式,但至少没有选项可以gzip做到这一点。您可以看到用于tar解压缩my.tar.gz文件的“gzip -d” gziptar不会解压缩文件huge_mysql_file.gz,但它必须读取(并忽略)该文件,huge_mysql_file.gz因为这是由管道提供给gunzip的。

如果 tar 文件未经过 gzip 压缩并且您列出了其内容,如下所示

tar -tvf my.tar --exclude="huge_mysql_file.gz"

只需读取存档中的标头huge_mysql_file.gz即可了解其大小。然后 tar 可以跳过该文件而不读取它并继续处理下面的文件。

相关内容