linux - 如何限制 tar 期间的内存使用

标签 linux tar

我需要压缩(或以其他方式压缩)超过 270 万个文件。 (150GB)

但是,对于这么多文件,tar 命令使用了太多内存,导致我的系统崩溃。我能做什么?

tar -cf /path/filename.tar /path_to_file/

我尝试根据文件创建日期和 find 批量执行此操作(多个 tar 文件即可),但 find 占用更多内存。

最佳答案

不确定这是否是一个准确的答案,因为它没有说明如何显式降低 tar 的内存使用量,但是...

我认为您可以指定与 tar 一起使用的压缩程序使用 pigz (并行 gzip),然后指定要使用的线程数以更好地帮助管理内存。也许是这样的:

tar cvf - paths-to-archive | pigz -p 4 > archive.tar.gz

其中 -p $NUM 是核心数量。

关于linux - 如何限制 tar 期间的内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080860/

相关文章:

linux - 无法解压文件?

java - 在 Java 中挂载和解压缩文件

java - 在解压缩 .gz 文件时,解压缩并创建为本地副本的文件没有 .gz 可用的原始文件的最后修改时间

linux - 分析共享对象的核心文件

linux - 多个 Apache2 进程正在运行,使用 100% CPU

linux - 如何从绝对路径和包文件创建 tar 存档,就好像它们是相对的一样?

shell - 自解压 tar 存档(shell 脚本)

linux - 从 Windows 7 到 Ubuntu 14.04 的各种 vnc 服务的灰色空白屏幕

linux - 无法在 GDB 中加载自定义 ELF 可执行文件

linux - init-ifupdown 的 Yocto Poky-Pyro bbappend 文件没有替换/etc/network/interfaces