Total Pageviews

Sunday, 13 March 2016

xargs命令

xargs命令的作用就是将上一个命令的结果,作为xargs后面命令的参数来使用。
命令对比:
1、假设当前目录下有111.txt和222.txt两个文件

find -name 111.txt | ls -la

搜索出来的结果和ls -la命令执行结果一样。

find -name 111.txt | xargs ls -la

搜索出来的结果只有111.txt信息。
第二句find语句将前面的结果作为了ls -la的参数,ls -la 111.txt。
2、在当前目录下搜索以.c结尾的文件

find . -name "*.c" | grep SetMessage

搜索出来的是一个叫SetMessage.c的文件。

find . -name "*.c" | xargs grep SetMessage

搜索出来的是在某个.c中有SetMessage函数定义。
第一个find语句是grep从管道出来的结果集中去找SetMessage的内容。
第二个find语句是将管道出来的结果作为grep的参数,比如结果里有1.c、2.c、SetMessage.c,命令就变成
grep SetMessage 1.c 2.c SetMessage.c
后来在2.c中找到SetMessage函数定义。