美文网首页
将Linux命令的结果作为下一个命令的参数

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

作者: 大喵哥哥666 | 来源:发表于2019-08-24 23:31 被阅读0次

符号:` `

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

命令:xargs

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

管道与xargs的区别

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

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 去处理的, 则无此忧虑。

相关文章

  • 聚合

    管道 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数,MongoDB的聚合管道将Mo...

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

    符号:` ` 名称:反引号,上分隔符 位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号...

  • linux常用命令

    标签: linux xargs 将数据作为命令的参数传入,默认命令是echo, 默认定界符是 空格。参数如下: -...

  • shell 中各个命令的区别,你了解多少?

    1、xargs作用: (1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,...

  • Linux就该这么学 4 | Linux常用命令

    Linux命令组成 Linux命令一般格式:命令名称 [命令参数] [命令对象] 注意:命令名称、命令参数、命令对...

  • linux下使用awk xargs批量杀进程

    awk是linux下强大的文本处理工具xargs是linux下一个常用命令,用于将参数列表打散 这两个命令结合用来...

  • Linux命令

    1.1Linux基础命令使用格式为:命令名 [选项]... [参数]...其中,不同的[选项],命令执行的结果也不...

  • Linux基础命令学习笔记

    命令概述 Linux命令的组成部分 命令字 命令选项参数(简称"选项") 命令操作参数(简称"参数")comman...

  • 基础命令

    # linux 下常用的命令 linux命令参数一般是-缩写,--全名,-参数1参数2,这种方式定义的。命令区分大...

  • Linux命令学习之:sort命令

    Linux命令学习之:sort命令 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如...

网友评论

      本文标题:将Linux命令的结果作为下一个命令的参数

      本文链接:https://www.haomeiwen.com/subject/ogycectx.html