xargs命令的使用过程中一个小领悟:管道与xargs的差别
对xargs的使用总是比较模糊,大概的理解为:通道中,上一个命令的标准输出逐行作为下一个命令的参数
例如 find /var/temp* | xargs rm -r
功效:找出/var/中所有temp开头的文件和文件夹,再用rm逐行删除
(因为rm不支持管道,因此只能用xargs使find的结果逐行作为rm的参数)
假设:
<span style="font-size:18px;">$ find /var/temp*
$ /var/temp1
/var/temp2</span>
此时,再用xargs rm -r 等效于
<span style="font-size:18px;">$ rm -r /var/temp1
rm -r /var/temp2</span>
============================分割===================================
那么,管道与xargs有什么差别呢?
这是我在使用linux过程中的一个例子。
(find与grep都是支持管道的命令)
<span style="font-size:18px;">#找出/usr/shar/doc中bash-开头的所有文件,结果如下(展开说明前的环境铺垫)
[GMPY@14:44 ~]$find /usr/share/doc/bash-* -type f
/usr/share/doc/bash-completion/AUTHORS
/usr/share/doc/bash-completion/CHANGES.package.old
/usr/share/doc/bash-completion/bash_completion.txt
/usr/share/doc/bash-completion/README
/usr/share/doc/bash-completion/CHANGES
[GMPY@14:45 ~]$
</span>
大家再对比下下面有xargs与无xargs的结果差别
有xargs时的过滤:
<span style="font-size:18px;">[GMPY@14:49 ~]$find /usr/share/doc/bash-* -type f| xargs grep -Ew "README"
/usr/share/doc/bash-completion/bash_completion.txt: also README.
/usr/share/doc/bash-completion/CHANGES: * Fix bash_completion paths in README (Debian: #647941)
/usr/share/doc/bash-completion/CHANGES: * README updated: explain how to use bash-completion correctly.
[GMPY@14:49 ~]$</span>
无xargs时的过滤:
</pre><pre name="code" class="cpp">
<span style="font-size:18px;">[GMPY@14:49 ~]$find /usr/share/doc/bash-* -type f| grep -Ew "README"
/usr/share/doc/bash-completion/README
[GMPY@14:53 ~]$
</span>
结果是不同的,为什么呢?
1、无xargs时是使用管道(虽然严格来说有xargs也是管道,这里为了区分暂时这么称呼),即把find命令的标准输出作为grep的检索内容,等效于:find的结果作为一个“字符串”被grep检索
<span style="font-size:18px;">$ grep -Ew "README" </span>
<span style="font-size:18px;">"/usr/share/doc/bash-completion/AUTHORS
/usr/share/doc/bash-completion/CHANGES.package.old
/usr/share/doc/bash-completion/bash_completion.txt
/usr/share/doc/bash-completion/README
/usr/share/doc/bash-completion/CHANGES"</span>
2、有xargs时,则等效于检索find命令找到的每一个文件
<span style="font-size:18px;">$ grep -Ew "README" /usr/share/doc/bash-completion/AUTHORS
$ grep -Ew "README" /usr/share/doc/bash-completion/CHANGES.package.old
$ grep -Ew "README" /usr/share/doc/bash-completion/bash_completion.txt
$ grep -Ew "README" /usr/share/doc/bash-completion/README
$ grep -Ew "README" /usr/share/doc/bash-completion/CHANGES</span>
xargs命令的使用过程中一个小领悟:管道与xargs的差别的更多相关文章
- ESXi与物理交换机静态链路聚合配置过程中的小陷阱
作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...
- 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)
关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录) 作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...
- 利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)
利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录) 作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $(" ...
- html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)
html/css 盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width 是"宽 ...
- 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)
在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象 ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚 ...
- dubbo debug过程中一个有趣的问题
最近在debug dubbo代码过程中遇到的很有趣的问题 我们都知道dubbo ReferenceBean是消费者的spring bean包装,为了查一个consumer端的问题,在Reference ...
- 继《关于讯飞语音SDK开发学习》之打包过程中遇到小问题
关于讯飞语音SDK开发学习 使用vs自带打包,具体怎么操作就不说了,网上关于这方面的资料挺多的.例如:winform 打包部署,VS2010程序打包操作(超详细的),关键是桌面上创建快捷方式中的&qu ...
- stm8 停机模式与外部中断唤醒中一个小问题
做了一个简单的项目,电路板使用电池供电,需要系统在待机时低功耗.而对外接口只有4个按键,也就是唤醒必须要通过这四个按键. 系统功能就不介绍了,只给出进入低功耗的代码和退出低功耗的代码. 使用芯片为st ...
- 第三方开源动画库EasyAnimation中一个小bug的修复
看过iOS动画之旅的都知道,其中在最后提到一个作者写的开源动画库EasyAnimation(以下简称EA). EA对CoreAnimation中的view和layer动画做了更高层次的包装和抽象,使得 ...
随机推荐
- sql2005 和 mysql 定时备份批处理
保存为sqlbak.bat 目录我直接放winrar 的根目录了 或者拷贝一个winrar.exe 具体目录随意. 然后添加计划任务个人的话建议一周或者一天 虚拟主机等 建议每周或者每月 @echo ...
- 从0开始学CentOS7(2)---安装mariaDB、jdk1.8、redis
继续前面的基础步骤~ 这个是centos7自带的数据库MariaDB,以前是mysql,到7以后,改为MariaDB... 1. MariaDB安装,没有往深处配置...懒得动了..参考:http:/ ...
- [原]如何在Android用FFmpeg+SDL2.0之同步视频
关于视频同步的原理可以参考http://dranger.com/ffmpeg/tutorial05.html 和 [原]基础学习视频解码之同步视频 这两篇文章,本文是在这两篇的基础上移植到了Andro ...
- Vue、PHP、Bootstrap联手打造简单数据管理表格
这是一个用Vue.Bootstrap和PHP一起写的小实例,回顾总结了一下之前学习的知识,顺带添加点学习乐趣. 先上效果图: 用到的知识有:Vue数据绑定及组件.Bootstrap界面.PHP-AJA ...
- 阅读SessionFactory源码
一.阅读类注释 ①.SessionFactory的主要任务是创建Session的实例.通常一个应用程序只有一个单一的SessionFactory对象,而且线程从这个SessionFactory中获取S ...
- Yii2.0 请求
1.获取请求参数 $request = Yii::$app->request; $get = $request->get(); // 等价于:$get = $_GET; $id = $re ...
- Powershell应用
- 数据元&数据字典&元数据
1. 数据元 data element(数据元素),单个数据单元,是数据的基本单位.参阅data field(数据字段). 2. 元数据 首先,我们举个例子来看看什么叫做“元”,在后现代主义文学中有一 ...
- easyui分页的使用方法
使用: $("#tt").datagrid("getPager").pagination(option); 例子: $("#tb").dat ...
- 关于JWT.NET
1.JWT的概念: JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自 ...