<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=GNU_parallel</id>
	<title>GNU parallel - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=GNU_parallel"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=GNU_parallel&amp;action=history"/>
	<updated>2026-07-09T16:48:46Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=GNU_parallel&amp;diff=3238085&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救1个来源，并将0个来源标记为失效。) #IABot (v2.0.8.7</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=GNU_parallel&amp;diff=3238085&amp;oldid=prev"/>
		<updated>2022-05-12T15:03:40Z</updated>

		<summary type="html">&lt;p&gt;补救1个来源，并将0个来源标记为失效。) #IABot (v2.0.8.7&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA|G1=IT}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = Parallel&lt;br /&gt;
| title                  = Parallel&lt;br /&gt;
| logo                   = Gnu-parallel.svg&lt;br /&gt;
| logo size              = 150px&lt;br /&gt;
| screenshot             = &amp;lt;!-- [[File: ]] --&amp;gt;&lt;br /&gt;
| caption                = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = &lt;br /&gt;
| developer              = [[GNU计划]]&lt;br /&gt;
| released               = &amp;lt;!-- {{Start date|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 20220322&amp;lt;ref&amp;gt;{{cite mailing list|url=https://lists.gnu.org/archive/html/parallel/2022-03/msg00023.html|title=GNU Parallel 20220322 (&amp;#039;Маріу́поль&amp;#039;)|date=2022-03-22|mailing-list=parallel|last=Tange|first=Ole|access-date=2022-03-22|archive-date=2022-04-04|archive-url=https://web.archive.org/web/20220404032159/https://lists.gnu.org/archive/html/parallel/2022-03/msg00023.html}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| latest release date    = {{Start date and age|2022|03|22|df=yes}}&lt;br /&gt;
| programming language   = [[Perl]]&lt;br /&gt;
| operating system       = [[Linux]]和其他[[类Unix]]操作系统&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = 实用工具&lt;br /&gt;
| license                = [[GPLv3]]&lt;br /&gt;
}}&lt;br /&gt;
GNU &amp;#039;&amp;#039;&amp;#039;parallel&amp;#039;&amp;#039;&amp;#039;是用于[[Linux]]和其他[[类Unix]]操作系统的[[命令行]]驱动的实用工具，它允许用户[[并行计算|并行]]的执行[[Bourne shell|shell]]脚本。GNU parallel是Ole Tange用[[Perl]]写的[[自由软件]]。它可在[[GPLv3]]条款下获得&amp;lt;ref&amp;gt;{{cite web |url=https://www.gnu.org/software/parallel/ |work=GNU.org |title=GNU Parallel |accessdate=2021-02-06 |archive-date=2021-02-01 |archive-url=https://web.archive.org/web/20210201220904/https://www.gnu.org/software/parallel/ |dead-url=no }}&amp;lt;/ref&amp;gt;。GNU parallel可以在远程服务器上运行[[作业 (计算机)|作业]]，它使用[[Secure Shell|ssh]]与远程机器进行通信。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
最常用的用法是替代shell循环，比如将&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
    for x in $(cat list); do &lt;br /&gt;
        do_something &amp;quot;$x&amp;quot;&lt;br /&gt;
    done | process_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
变为如下形式：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
    cat list | parallel do_something | process_output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
这里的文件&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;包含给&amp;lt;code&amp;gt;do_something&amp;lt;/code&amp;gt;的实际参数，而这里的&amp;lt;code&amp;gt;| process_output&amp;lt;/code&amp;gt;可以省略。&lt;br /&gt;
&lt;br /&gt;
使用parallel的脚本通常比使用[[pexec]]的脚本易读。&lt;br /&gt;
&lt;br /&gt;
程序parallel的特征还有：&lt;br /&gt;
* 聚组[[标准输出]]和[[标准错误输出]]，parallel延期输出直到所有运行作业完成；&lt;br /&gt;
* 可保持输出的次序同于输入的次序；&lt;br /&gt;
* 恰当的处理包含特殊字符的文件名，比如空格、单引号、双引号、&amp;amp;（ampersand）和UTF-8编码字符；&lt;br /&gt;
作为缺省，parallel并行运行作业的数量同于[[CPU|CPU核心]]数目。&lt;br /&gt;
&lt;br /&gt;
==例子==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 find . -name &amp;quot;*.foo&amp;quot; | parallel grep bar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述命令是如下命令的并行等价：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 find . -name &amp;quot;*.foo&amp;quot; -exec grep bar {} +&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
它在当前[[目录 (文件系统)|目录]]及其子目录中的名字结束于&amp;lt;code&amp;gt;.foo&amp;lt;/code&amp;gt;的所有文件中查找[[字符串]]&amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;的出现。parallel将如期运行除非遇到名字包含[[换行]]的文件。为了避免这个限制可以使用：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 find . -name &amp;quot;*.foo&amp;quot; -print0 | parallel -0 grep bar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述命令使用[[空字符]]来分隔文件名。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 find . -name &amp;quot;*.foo&amp;quot; | parallel -X mv {} /tmp/trash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述命令使用&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;来告知&amp;lt;code&amp;gt;parallel&amp;lt;/code&amp;gt;将&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;替代为实际参数列表。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 find . -maxdepth 1 -type f -name &amp;quot;*.ogg&amp;quot; | parallel -X -r cp -v -p {} /home/media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上述命令所做同于：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cp -v -p *.ogg /home/media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
但是，使用&amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;parallel&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;的前者命令更加有效利用资源，并且在*.ogg展开后对于shell而言太大的情况下不作为错误而停止。&lt;br /&gt;
&lt;br /&gt;
==参见==&lt;br /&gt;
{{Commons}}&lt;br /&gt;
* [[xargs]]&lt;br /&gt;
* [[pexec]]&lt;br /&gt;
* [https://github.com/louwrentius/PPSS PPSS - (Distributed) Parallel Processing Shell Script] {{Wayback|url=https://github.com/louwrentius/PPSS |date=20201111180639 }}&lt;br /&gt;
&lt;br /&gt;
== 引用 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* {{official website}}&lt;br /&gt;
* [https://savannah.gnu.org/projects/parallel/ GNU parallel的项目页和手册页] {{Wayback|url=https://savannah.gnu.org/projects/parallel/ |date=20210126080833 }}&lt;br /&gt;
&lt;br /&gt;
{{GNU}}&lt;br /&gt;
&lt;br /&gt;
[[Category:用Perl编程的自由软件]]&lt;br /&gt;
[[Category:GNU计划软件]]&lt;br /&gt;
[[Category:Unix进程和任务管理相关软件]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>