原文地址:https://www.lujun9972.win/blog/2020/04/01/既生xargs何生parallel/index.html
目录
xargs和parallel都能并发运行多个命令,然而对这两个命令的区别一直不太清楚,直到看到了这篇文章:https://www.gnu.org/software/parallel/parallel_alternatives.html#DIFFERENCES-BETWEEN-xargs-AND-GNU-Parallel
简单的说,parallel就是增强版的xargs。
xargs 不能很好的处理特殊字符(比如空格, \, ' 和 ")
比如下面这个例子
touch important_file
touch 'not important_file'
ls not* | xargs rm
会删除 import_file
,并提示 rm: 无法删除 'not': 没有那个文件或目录
mkdir -p "My brother's 12\" records"
ls | xargs rmdir
会提示 /usr/bin/xargs: 未匹配的 单 引用;默认情况下,引用是针对 xargs 的,除非您使用了 -0 选项
和 rmdir: 删除 'My' 失败: 没有那个文件或目录
touch 'c:\windows\system32\clfs.sys' echo 'c:\windows\system32\clfs.sys' | xargs ls -l
会提示: ls: 无法访问 'c:windowssystem32clfs.sys': 没有那个文件或目录
一般遇到这种情况你需要使用xargs的 -0