我在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个文件部分,你可以把它们放在一起然后解压缩。 –