文档章节

将Linux命令的结果作为下一个命令的参数

Honghe
 Honghe
发布于 2013/03/07 16:08
字数 570
阅读 13295
收藏 10

KISS:keep it short and simple!

1. 符号:` `
名称:反引号,上分隔符
位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆
作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
举例:

$ echo `date` 
Thu Mar 7 21:31:11 CST 2013

2. $() 
效果同` `

3. 命令:xargs
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

$ date | xargs echo
Thu Mar 7 21:47:12 CST 2013

管道与xargs的区别:

  • 管道是实现“将前面的标准输出作为后面的标准输入”
  • xargs是实现“将标准输入作为命令的参数”
4. find命令的-exec参数

xargs:通过缓冲方式并以前面命令行的输出作为参数,随后的命令调用该参数
若忽略 xargs 的 options 来看的话,
cm1 | xargs cm2
可以单纯看成: cm2 `cm1`
因此, find .... | xargs rm 也可作 rm `find ...` 来处理.
然而, 若 find 的结果太多, 可能会超过rm 可能接受的最大argument数量而失败.
xargs优点:由于是批处理的,所以执行效率比较高(通过缓冲方式)
xargs缺点:有可能由于参数数量过多(成千上万),导致后面的命令执行失败
若换成 find .... -exec   rm {} \; 的话, 
因为rm 是" 逐个 " item 去处理的, 则无此忧虑

参考:

如何将Linux命令的结果作为下一个命令的参数
Linux xargs命令
管道命令和xargs的区别(经典解释)
exec 与 xargs的区别


© 著作权归作者所有

共有 人打赏支持
Honghe

Honghe

粉丝 57
博文 127
码字总数 35797
作品 3
福州
高级程序员
私信 提问
加载中

评论(3)

苍老的过去
苍老的过去
好像不行啊
zhuzhiou
zhuzhiou
后面二种还未用过呢。
int03h
int03h
长见识了,多谢分享。
linux shell命令基础

1.命令行格式 $command [option(s)] [argument(s)] //方括号代表可选 命令名 空格 选项 空格 参数 在命令行每两个部分之间有空格分隔 每个命令行可使用的最多的命令字符数是256个 命令要区分...

junjunba2689
2018/03/25
0
0
【Linux学习】Shell命令行参数解析工具getopts是如何使用的?

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】 https://blog.csdn.net/qq446282412/article/details/86493502 一、学习背景 最近通...

欧阳鹏
01/15
0
0
运维常用的shell命令.md

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014453515/article/details/84978843 1.后台启动脚本 nohup ./start.sh > /dev/null 2>&1 & dev/null代表lin......

AndysCat
2018/12/12
0
0
python小专题——optparse模块

浅谈optparse模块   最近遇到一个问题,是指定参数来运行某个特定的进程,这很类似Linux中一些命令的参数了,比如ls -a,为什么加上-a选项会响应。optparse模块实现的也是类似的功能,它是...

zhoujie0111
2013/06/09
0
0
dos2unix命令 - 将DOS格式文本文件转换成UNIX格式

my blog: http://blog.geekidentity.com/linux/linux_dos2unix/ 用途说明 dos2unix命令用来将DOS格式(Windows格式)的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format conver......

侯法超
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Httpd 整合 Tomcat 步骤

环境:Tomcat8 + Httpd2.4 工作原理:借助于Tomcat的AJP连接器实现Apache与Tomcat的通信 配置步骤: 1. 配置httpd.conf 新增: Include conf/extra/mod_jk.conf 修改:添加 index.jsp <IfM...

ZeroneLove
昨天
1
0
Docker笔记3——容器命令(未写完,明天整理接着写)

未写完,明天整理接着写 新建并启动容器 docker run docker run [OPTIONS] IMAGE [COMMEND] [ARG...] OPTIONS: --name=[容器新名字] :为容器指定一个名称 -d:后台运行容器,并返回容器ID,...

HappyBKs
昨天
1
0
2018个人年终总结

感谢领导的信任和指导,新的一年获得了很多成长和提高,改掉了很多不好的习惯。 在这一年里,我在领导的帮助下,主要完成了以下功能: 1、完成上海银行版本投资营销相关功能的开发。 2、完成车...

万山红遍
昨天
12
0
保密工作与linux系统的发展

保密工作从性质上可以分成商业方面的保密和国家安全方面的保密。由于自己从事的是IT方面的工作,工作中必然会接触涉及到计算机信息方面的相关文件。加上单位已近通过武器装备科研生产单位二级...

linux-tao
昨天
3
0
Spark共享变量

概述 Spark程序的大部分操作都是RDD操作,通过传入函数给RDD操作函数来计算。这些函数在不同的节点上并发执行,但每个内部的变量有不同的作用域,不能相互访问,所以有时会不太方便,Spark提...

仟昭
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部