多核 gzip 与 pv 进度条

gzip on multiple cores with pv progression bar

在这个 2010 年的问题 Gzip with all cores 之后,我想 gzip 使用多核的文件并使用 pv 工具指示进度条。

如何改进此代码?

CORES=$(grep -c '^processor' /proc/cpuinfo)
find /source -type f -print0 | xargs -0 -n 1 -P $CORES gzip -9

我想同时显示剩余时间和进度条 运行。

截至 2018 年,您还有其他最佳选择吗?

谢谢。

你并不是真的 运行在多个内核上使用 gzip,你 运行使用多个 gzip。

pv 运行s 在管道上。我认为不可能同时在多个管道上使用它 运行 并提供所有管道的摘要。

使用有进度条的 GNU Paralleleta:

find ... -print0 | parallel -0 --progress gzip -9 {}

或者

find ... -print0 | parallel -0 --eta ...

或者

find ... -print0 | parallel -0 --bar ...