应用模式: scmd |xargs -item dcmd
不带dcmd ,默认的使用echo 输出
xargs 一般是和管道一起使用:
scmd | xargs (选项) dcmd initial-args
-a 从文件读取输入 eg:xargs -a main.cpp | grep main
-p 每次执行dcmd都交互式提示用户选择是否执行y/n eg: ls | xargs -p
-i 告诉 xargs 使用{}代替传递过来的参数, 该选项已废弃, 用-I替代eg: ls | xargs -i mv {} {}.bak 将目录下所有文件改名
-r 告诉xargs 如果标准输入为空不执行dcmd, 通常情况下不论标准输入是否为空都会执行dcmd, eg: grep rbtree lists.cpp | xargs 若rbtree在lists.cpp中不存在, 则会打印个空格, 若加上-r: grep rbtree lists.cpp | xargs -r 则不会打印空格
-t 打印dcmd内容, 然后执行dcmd, eg:grep rbtree lists.cpp.bak | xargs -t 打印/bin/echo
-l 指定一次传给dcmd的最大参数个数, 该选项已废弃, 用-L替代 如eg:ls | xargs -l2 则每行最多显示2个文件
-0 当传给xargs中有空格、tab等, 需要-0, eg: ls -l | xargs -n1 -0 若没有-0将会以空格或者tab切割单独当成一个参数
-d 指定xargs参数结束符, eg: ls -l | xargs -n1 -d '\n' 和上边输出效果一样
-e/-E 指定文件输入的结束符, xargs -E 'o' 回车输入, 直到输入o时结束输入
-s 指定xargs 后包括命令及xargs传给其的参数的的最大字符数, 不够容纳的,将按空格分隔作为下一个参数 eg: echo "hello world" | xargs -s18