最近看很多脚本有用xargs,只是大概知道是做什么的,自己没用过,特别学习一下。
xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候, xargs 可能就会误判了,如果需要处理特殊字符,需要使用-0参数进行处理。
1.-0 :当sdtin含有特殊字元时候,将其当成一般字符,比如/ 空格等
2.-a file 从文件中读入作为sdtin
3. -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
4.-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
5.-p 操作具有可交互性,每次执行comand都交互式提示用户选择,当每次执行一个argument的时候询问一次用户
6.-t 表示先打印命令,然后再执行
7.-i 或者是-I,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替
-I 必须制定替换字符,-i 是否指定替换字符-可选
find . | xargs -I {} cp {} $D_PATH
与
find . | xargs -i cp {} $D_PATH
8.-r no-run-if-empty 如果没有要处理的参数传递给xargsxargs 默认是带 空参数运行一次,如果你希望无参数时,停止 xargs,直接退出,使用 -r 选项即可,其可以防止xargs 后面命令带空参数运行报错。
9.-s num xargs后面那个命令的最大命令行字符数(含空格)
10.-L 从标准输入一次读取num行送给Command命令 ,-l和-L功能一样
11.-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符
用gitforwindows 运行小试了下,感觉和在linux运行效果一样,基本命令都通用。
xargs 还不错。后面继续更新新用法。