N天学习一个linux命令之xargs
用途
标准输入流读取参数(空格或者换行符分隔),传递给需要执行的命令
用法
xargs [options] [command [initial-arguments]]
常用选项
--arg-file=file
-a file
从文件中读取参数
--null
-0
空字符作为分隔符,当参数中包含空格或者换行符时使用
--delimiter=delim
-d delim
指定参数分隔符
--max-args=max-args
-n max-args
设置传递的参数个数
--interactive
-p
显示交互提示
--no-run-if-empty
-r
参数为空时不执行
--verbose
-t
打印执行的命令信息
--version
显示命令版本信息
--max-procs=max-procs
-P max-procs
设置可执行的最大进程,默认是1,0表示不限制
-I replace-str
用参数替换命令初始参数占位符
实践
1.文件中读取参数
[root@vm ~]# xargs -a t.log echo
a b
2.参数空字符分隔
[root@vm ~]# xargs -0 -a t.log echo
a
b
3.指定参数分隔符
[root@vm ~]# echo 'b##cc' >> t.log
[root@vm ~]# xargs -a t.log -d '#' echo
a
b
b cc
4.设置每次传递一个参数且执行命令前提示
[root@vm ~]# xargs -a t.log -n 1 -p echo
echo a ?...y
echo b ?...a
y
echo b##cc ?...b
y
b##cc
5.删除/tmp目录下文件名为core的文件
a.文件名没有包含特殊字符(空格,换行符)
[root@vm ~]# find /tmp -name core -type f -print | xargs /bin/rm -f
[root@vm ~]#
b.文件名包含特殊字符(空格,换行符)
[root@vm ~]# find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
[root@vm ~]#
6.替换命令初始参数占位符
[root@vm ~]# xargs -a t.log -n 1 -I '{}' echo '{}'
a
b
b##cc
参考资料
【1】man xargs
出处:http://www.cnblogs.com/wadeyu/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。