如何最大限度地减少解压的时间&在Unix中压缩文件?

axr492tv  于 2023-06-22  发布在  Unix
关注(0)|答案(3)|浏览(169)

我必须解压缩,然后(处理后)再次压缩(存档)源文件。文件大小通常很大,约为200-250 GB(未压缩,.dat格式)(共96个文件)。解拉链的过程需要大约2个小时,再次拉链过程需要1:30到2个小时,这是负担不起的。目前我使用“zcat”命令解压缩,“gzip -3”压缩文件。磁盘空间不是一个问题,因为我们有1.5 TB挂载到位。请你建议一些更有效的方式来完成这个过程。
期待您的建议,谢谢- Pushkar。

kmpatx3s

kmpatx3s1#

解压时尝试静音模式-q。如果存档中有太多文件,这将大大减少时间,因为unzip将名称写入stdout。
man unzip

-q     perform  operations  quietly  (-qq  = even quieter).  Ordinarily
          unzip prints the names of the files it's extracting or  testing,
          the extraction methods, any file or zipfile comments that may be
          stored in the archive, and possibly a summary when finished with
          each  archive.   The -q[q] options suppress the printing of some
          or all of these messages.
cunj1qz1

cunj1qz12#

如果磁盘空间不是问题,那么就不要压缩。那你也永远不需要减压了。
如果您有多个内核,可以尝试pigz来加快速度。它是gzip的一个并行实现,它将特别加快压缩速度。
我不明白为什么你的解压缩比你的压缩慢。它应该快三到十倍。你能提供你正在做的事情的实际代码吗?一定有什么问题。
顺便说一句,你的术语不正确。压缩和解压缩是指.zip格式,而不是.gz格式。你只需要说你压缩和解压缩gzip格式。

efzxgjgh

efzxgjgh3#

使用并行处理!根据可用的CPU数量,可以使用等于CPU数量的系数来加快进程。您可以使用bash脚本来完成此操作。我个人更喜欢使用Python脚本。我使用concurrent.futures中的ProcessPoolExecutor模块。

相关问题