您的位置:首页 > 其它

xargs

2015-06-23 18:46 197 查看
管道是把一个命令的输出传递给另一个命令作为输入,比如:

command1 | command2

但是command2仅仅把command1输出的内容作为输入参数。

find . -name "install.log" -print打印出的是install.log这个字符串,如果仅仅使用管道,那么command2能够使用的仅仅是install.log这个字符串,不能把它当作文件来进行处理。xargs就是为了能够对find搜索到的文件进行操作而编写的,它能把管道传来的字符串当作文件交给其后的命令执行。

举个例子:

(1)$find . -name "install.log" -print | cat

./install.log #显示从管道传来的内容,仅仅作为字符串来处理

(2)$find . -name "install.log" -print | xargs cat

aaaaaa #将管道传来的内容作为文件,交给cat执行。也就是说,该命令执行的是如果存在install.log,那么就打印出这个文件的内容。

通过这个例子,应该很容易理解这样有什么不同了。当你要对匹配文件操作时,使用find and xargs,其实这都是运用了管道。xargs是shell命令的一个,可以把管道输入的内容转化为其参数要操作的文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: