我有一个 .tar.gz 作为输入,想要提取它的前 128 MiB 并在单个命令中作为 .tar.gz 输出。我试过:
sudo tar xzOf input.tar.gz | sudo dd of=output bs=1M count=128 iflag=fullblock | sudo tar -cfz final.tar.gz -T -
这显然不起作用。我怎样才能做到这一点。
答案1
不要尝试提取存档的内容(这在这里不起作用 - 无法跟踪各个文件的元数据),而是对其进行解压缩、截断并重新压缩。如果您有一个能够执行此操作的版本head
:
gzip -dc input.tar.gz | head -c128M | gzip -c > final.tar.gz
或者您可以dd
在命令中使用:
gzip -dc input.tar.gz | dd bs=1M count=128 iflag=fullblock | gzip -c > final.tar.gz