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命令的一个,可以把管道输入的内容转化为其参数要操作的文件。
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命令的一个,可以把管道输入的内容转化为其参数要操作的文件。
相关文章推荐
- 我的大学六年(单片机大师郭天祥原创)
- 使用HttpSessionListener接口监听Session的创建和失效
- /mnt/asec /mnt/secure文件夹分区
- 约瑟夫环的数学推导、数学方法求最后出圈的数字、循环单链表求所有出圈数字顺序
- Android 刷脸神器,颜值价更高
- B. Vanya and Books
- windows下同步方案-cwRsync
- 车牌
- QQ智能聊天机器人设想
- 应用启动 ActivityStackSupervisor分析
- jQuery 参考手册 - DOM 元素方法
- Solr查询语法总结
- hiho 1167Advanced Theoretical Computer Science LCA
- 说出x的结果,并解释为什么?
- Unity3d《Shader篇》地球旋转上空悬浮云层
- Visual C++ Tips: error C2823: a typedef template is illegal
- 联诚发(LCF)全彩LED显示屏,炫彩耀世界
- 第三章
- Thinkphp开发时如何关闭缓存
- hiho 1166 高斯消元