命令将写一条诊断消息并退出而不处理任何保留的输入。
示例
要对名称在一个文档中列出的文档使用命令,输入:
xargs lint -a <cfiles假如 cfiles 文档包含下面的文本:
main.c readit.c
gettoken.c
putobj.cxargs 命令就构造并运行下面的命令:
lint -a main.c readit.c gettoken.c putobj.c假如 cfiles 文档包含比列出在单一外壳程式命令行上的文档名更多的文档名(最多 LINE_MAX),xargs 命令会用列出的文档名运行 lint
命令。然后他使用余下的文档名构造并运行另一个 lint 命令。根据在 cfiles 文档中列出的文档名,命令看起来可能类似于如下所示的内容:
lint -a main.c readit.c gettoken.c . . .
lint -a getisx.c getprp.c getpid.c . . .
lint -a fltadd.c fltmult.c fltdiv.c . . .这一命令序列同用任何的文档名运行 lint 命令一次不完全相同。lint 命令检查文档之间的交叉引用。然而,在这个示例中,他不能在 main.c 和
fltadd.c 文档之间,或任意两个在分开的命令行上列出的两个文档之间进行检查。
由于这个原因,仅当任何的文档名都在一行上列出时,才可能运行命令。要将这个指定到 xargs命令,通过输入以下命令使用 -x 标志:
xargs -x lint -a <cfiles
假如在文档 cfiles 中的任何文档名没有在一个命令行上列出,xargs 命令显示一条错误消息。
要构造包含一定数量文档名的命令,输入:
xargs -t -n 2 diff <<EOF
starting chap1 concepts chap2 writing
chap3
EOF
这一命令序列构造并运行每个包含两个文档名的 diff 命令(-n 2):
diff starting chap1
diff concepts chap2
diff writing chap3-t 标志使 xargs 命令在运行每个命令之前显示该命令,所以能看到正在发生的事件。<<EOF 和 EOF 模式匹配字符定义一个 here
document,他把在结尾行之前输入的文本用作对 xargs 命令的标准输入。
要把文档名插入命令行的中间,输入:
ls | xargs -t -I {} mv {} {}.old
这一命令序列通过在每个名字结尾添加 .old 来重命名在当前目录里的任何文档。-I 标志告诉 xargs 命令插入有{}(花括号)出现的 ls
目录列表的每一行。假如当前目录包含文档 chap1、chap2 和 chap3,这会构造下面的命令:
mv chap1 chap1.old
mv chap2 chap2.old
mv chap3 chap3.old要对单独选择的文档运行命令,输入:
ls | xargs -p -n 1 ar r lib.a
这一命令序列允许选择文档以添加到 lib.a 库。-p 标志告诉 xargs 命令去显示每一个他构造的 ar命令并询问是否想运行他。输入 y
来运行命令。假如不想运行这个命令按任意其他键。
会显示一些类似于下面的内容:
ar r lib.a chap1 ?...
ar r lib.a chap2 ?...
ar r lib.a chap3 ?... 要构造包含特定数量自变量的命令并将那些自变量插入一个命令行的中间,输入:
ls | xargs -n6 | xargs -I{} echo {} - some files in the directory假如当前目录包含从 chap1 到 chap10 的文档,构造的输出将会是下列内容:
chap1 chap2 chap3 chap4 chap5 chap6 - some files in the directory
chap7 chap8 chap9 chap10 - some file in the directory文档
/usr/bin/xargs包含 xargs 命令。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




