我对 unix 的研究已经结束:> 我对 unix 及其环境还不熟悉,所以我需要你们的帮助。长话短说,我有一个日常/每周运行的管理脚本(无所谓),它对总共约 20Tb 的文件进行 gzip 压缩。旧脚本使用循环,它逐个对文件进行 gzip 压缩,直到与配置文件中的模式匹配。我想要做的是一次对 4 个文件进行 gzip 压缩。因为这将减少管理脚本的时间。通过我的研究,我得出结论: find ${var} ! -name "${name}" -type f 2>/dev/null | xargs -n 1 -P 4 gzip
我的问题是,有没有办法不用 find/ls 命令来实现这一点,我可以用一些不同的命令替换 xargs 吗?请注意,我无法安装任何附加软件包。
答案1
我认为问题在于您的脚本匹配文件并开始压缩,匹配下一个文件并开始压缩。我的建议是:
拆分脚本以便能够运行多个 gzip 实例,因为 gzip 不能是多线程的(但是,您可以同时运行它的多个实例以使所有核心运行)
我提到了这个邮政启动多个实例所需的代码。