xargs命令简介


xargs主要功能是build and execute command lines from standard input,当命令行过长时,报Too many arguments错误时,可以使用xargs,其主要作用是从stdout中每次取一部分,然后传递给命令行执行,直至取完为止.
语法:
xargs  [-0prtx] [--interactive] [--null] [-d|--delimiter=delim]
       [-E eof-str] [-e[eof-str]]  [--eof[=eof-str]]
       [-L max-lines] [-l[max-lines]] [--max-lines[=max-lines]]
       [-I replace-str] [-i[replace-str]] [--replace[=replace-str]]
       [-n max-args] [--max-args=max-args]
       [-s max-chars] [--max-chars=max-chars]
       [-P max-procs]  [--max-procs=max-procs] [--show-limits]
       [--verbose] [--exit] [--no-run-if-empty] [--arg-file=file]
       [--version] [--help] [command [initial-arguments]]
选项:
-e[EOFString]/ -E EOFString
将 EOFString 参数用作逻辑 EOF 字符串。如果不指定 -e 或 -E 标志,则采用下划线 _ 为逻辑 EOF 字符串。xargs 命令读取标准输入直到达到 EOF 或指定的字符串。
-i[ReplaceString]/ -I ReplaceStrin 
该选项用于设置在Command 参数中用什么字符表示标准输入的当前行。ReplaceStrings 不能在超过 5 个自变量中使用。在每个标准输入行开始的空字符被忽略。每个 Argument能包含一个或多个 ReplaceStrings,但不能大于 255 字节。如果没有指定 ReplaceString 参数,使用字符串 "{}"。注:-I(大写 i)和 -i 标志是互相排斥的;最后指定的标志生效。
示例1: ls | xargs -t -i mv   {}   {} . bak
示例2: ls | xargs -t -I [] echo  {} .er
-l[Number]/ -L Number
用于指定。从标准输入的 哪一个非空行 开始读取字符串到数Command 命令。默认值为1.
-n Number
  用于指定xargs每次最多传递标准输入的多少行内容到Command命令。默认值为1.
-p
询问是否运行 Command 参数。它显示构造的命令行,后跟一个 ?...(问号和省略号)提示。输入肯定的、特定于语言环境的响应以运行 Command 参数。任何其它响应都会引起 xargs 命令跳过那个特定的参数调用。每个调用都将询问您。
 [-P max-procs]  [--max-procs=max-procs] [--show-limits]
这个什么意思呢?难道表示最大的进程数?
-t
启用跟踪方式,这样就可以看到实际构造的Command命令及参数
实例1
find . -name "*.java" |  xargs  grep 'AsyncTask'
实例2
find -name ‘.svn’ | xargs  rm -rf
实例3
ls | xargs  -n 20  rm -fr
ls当然是输出所有的文件名(用空格分割)
xargs 就是将ls的输出,每20个为一组(以空格为分隔符),作为rm -rf的参数
也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了
当然我可以直接使用 rm -rf  * 实现这个功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值