linux如何压缩为gz文件,将一个.gz文件拆分为多个1GB压缩(.gz)文件

  • Post author:
  • Post category:linux


我在Linux上有一个250GB的压缩文件,我想将它拆分为250个1GB文件,并在运行时压缩生成的部分文件(只要一个文件被生成,它应该被压缩)。 我试图用这个 -将一个.gz文件拆分为多个1GB压缩(.gz)文件

zcat file.gz | split -b 1G – file.gz.part

但这产生未压缩的文件有很强的针对性。我修改它看起来像这样,但得到了一个错误:

zcat file.gz | split -b 1G – file.gz.part | gzip

gzip: compressed data not written to a terminal. Use -f to force compression.

For help, type: gzip -h

我也试过这一点,并没有抛出任何错误,但并未只要它们生成压缩零件文件。我假设这将在整个分割完成时压缩每个文件(或者它可以打包所有部分文件并在分割完成后创建单个gz文件,我不确定)。

zcat file.gz | split -b 1G – file.gz.part && gzip

我读here有一个过滤器的选择,但我的分裂版本(GNU的coreutils)8.4,因此过滤器不支持。

$ split –version

split (GNU coreutils) 8.4

请告知合适的方式来实现这一点,优选地使用一个衬里代码(如果可能的话)或壳(庆典/ KSH)脚本也将工作。

+0

我建议在某些脚本语言中编写自己的“split with gzip”变体。因为否则,您将不得不通过该250 GB文件多次读取(首先确定它的大小,然后在循环中始终采用一个拼接并对其进行gzip) –

+0

这些部件独立可解压缩的重要性如何?如果你只是运行’split -b 1G file.gz’,你最终会得到250个文件部分,你可以把它们放在一起然后解压缩。 –