我有一堆 gzip 文件,我必须时不时地将它们转换为 bzip2。目前,我正在使用一个 shell 脚本,它简单地对每个文件进行“gunzip”,然后是“bzip2”。虽然这行得通,但需要很多时间才能完成。
是否有可能使这个过程更有效?如有必要,我已准备好深入研究 gunzip 和 bzip2 的源代码,但我只想确定回报。有没有希望提高流程的效率?
Chr*_*ton 15
与其在一个步骤中使用 gunzip 而在另一个步骤中使用 bzip2,我想知道使用管道是否可能更有效。就像是gunzip --to-stdout foo.gz | bzip2 > foo.bz2
我正在考虑使用两个或更多 CPU,这肯定会更快。但也许即使只有一个核心。不过,我可耻地承认没有尝试过。
小智 6
如果您有多个内核(甚至多台机器),GNU 并行 ( http://www.gnu.org/software/parallel ) 可能是一种选择:
ls *.gz | parallel "gunzip -c {} | bzip2 > {.}.bz2"
Run Code Online (Sandbox Code Playgroud)
阅读教程/手册页了解详细信息和选项。
| 归档时间: |
|
| 查看次数: |
11655 次 |
| 最近记录: |