当我提取 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” gzip
。tar
不会解压缩文件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 可以跳过该文件而不读取它并继续处理下面的文件。