GNU Parallel 20130522 ('Rana Plaza') 发布,并行作业执行

jopen 8年前

GNU parallel 是一个shell工具用于在本地或使用远程计算机并行执行作业(job)。作业通常是一个简单的命令或一个小脚本。

有的时候要执行一些很快但是却很多重复的操作,例如修改所有普通文件的权限,

修改一下权限本是很快的操作,但是文件很多的话操作起来就慢了。再比如要下载
很多http下很小的文件,下载一个文件如果只需要三秒,但是每一个文件从 建立连接、
进行对话然后开始下载直到下载完成,中间会浪费很多时间,可能浪费的比实际下载
所需的时间还多。

因此,如果能有一个方法并发进行,那么效率会高得多。以前在Shell里面也有一些
tricks 来进行这方面的操作,但是总是因为繁琐而容易出错。

现在FSF 开发的GNU parallel一出,问题迎刃而解。例如修改所有子目录下面普通
文件的权限:
  find ./ -type f | parallel -m chmod mode
文件夹权限
  find ./ -type d | parallel -m chmod mode

GNU Parallel 20130522 ('Rana Plaza') 发布,并行作业执行