`

linux命令: xargs

 
阅读更多

xargs

从标准输出建立并运行命令行


example1

描述:输出当前目录下所有符号链接或经过压缩的ASCII文件并显示

命令:file -Lz * | grep ASCII | cut -f1 -d: | xargs ls -ltr

解释:

file -Lz *:用于查找是符号链接或者经过压缩的文件;

输出结果:

anaconda-ks.cfg: ASCII English text

install.log: ASCII text

insall.log.syslog: ASCII text

mbox: ASCII mail text

grep ASCII:用于搜索包含 "ASCII" 字符的字符串并产生;

输出结果:

anaconda-ks.cfg: ASCII English text

install.log: ASCII text

insall.log.syslog: ASCII text

mbox: ASCII mail text

cut -f1 -d:表示采用冒号作为分隔符,并取出第一列。所以尽显示文件名;

输出结果:
anaconda-ks.cfg

install.log

install.log.syslog

mbox

xargs:将上述列表作为参数进行传递,一次传递一个。

xargs ls -ltr:用于接收输出并对其执行 ls -ltr 命令,命令等价于:

ls -ltr anaconda-ks.cfg

ls -ltr install.log

ls -ltr install.log.syslog

ls -ltr mbox

结果:

大家应该都知道了吧。

xargs 本身虽然没有多大用处,但在与其他命令相结合时,它的功能非常强大。


example2

描述:计算当前目录下各个文件行数:

命令:file * | grep ASCII | cut -f1 -d: | xargs wc -l

解释:(无)

结果:

40 anaconda-ks.cfg

452 install.log

53 install.log.syslog

68 mbox

613 total


example3

描述:用vi打开匹配后的文件

命令:file * | grep ASCII | cut -f1 -d: | xargs vi

解释:

该命令使用 vi 逐个打开文件。当您希望搜索多个文件并打开它们进行编辑时,使用该命令非常方便。

example4

描述:快速重命名目录中的文件。

命令:ls | xargs -i mv {} {}.old

解释:

-i 选项告诉 xargs 用每项的名称替换 {}。


xargs还有几个选项:


-p 选项;它使操作具有可交互性:

命令: file * | grep ASCII | cut -f1 -d: | xargs -p vi

此处的 xarg 要求您在运行每个命令之前进行确认。如果您按下 "y",则执行命令。


-t 选项;使用一个详细模式,显示要运行的命令,是调试过程中一个非常有帮助的选项。

如果传递给 xargs 的输出为空怎么办?考虑以下命令:

命令:file * | grep 12345 | cut -f1 -d: | xargs -t wc -l
wc -l
0

此处,搜索 "12345" 后没有匹配的内容;因此 xargs 的输入均为空,如第二行所示(由于我们使用 -t 这个详细选项而产生的结果)。

-r选项;虽然这可能会有所帮助,但在某些情况下,如果没有要处理的内容,您可能希望停止 xargs;如果是这样,可以使用 -r 选项:
命令: file * | grep 12345 | cut
-f1 -d: | xargs -t -r wc -l

如果没有要运行的内容,该命令退出。

-n选项;修改单个命令行传递的参数个数。例如我们即使向 xargs ls -ltr 传递五个文件,但每次向 ls -ltr 仅传递两个文件。

命令:file * | grep ASCII | cut -f1 -d: | xargs -t -n2 ls -ltr

分享到:
评论

相关推荐

    Linux文件查找命令find,xargs详述

    文章主要对Linux文件查找命令find和xargs进行详细描述,感性趣的朋友可以参考下。

    Linux基础之xargs命令的入门实例

    xargs命令有两个要点。第一,你必须列出目标文件。第二,你必须指定对每个文件需要执行的命令或脚本。 xargs命令被用来处理分布在不同目录下的文件: 计算所有文件的行数 打印指定文件的第一行 对每个文件执行一...

    Linux xargs 命令用法详解

    Linux xargs 命令 xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本...

    Linux xargs命令详细介绍

    Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,...

    可在windows使用的类linux工具xargs

    可在windows使用的类linux工具xargs,可以配合类liunx工具find进行文件处理。xargs的使用帮助为 xargs --help,实例可以上网查询。也可另外下载我的dos工具。

    Linux中xargs命令的使用方式.doc

    xargs 是给命令传递参数的一个过滤器,可以将管道或标准输入的数据转换成参数,默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行,不过通过 xargs 的处理,换行将被空格取代。

    linux find命令之xargs简单概述

    主要为大家详细介绍了linux find命令之xargs的简单使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Linux 下xargs命令详解及xargs与管道的区别

    在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别,本文通过实例给大家详解,需要的的...

    可以在windows上运行linux命令的批处理文件

    可以在windows上运行linux命令的批处理文件,极为方便。

    Linux_的命令find_xargs详述(2).txt

    Linux_的命令find_xargs详述(1)

    linux中xargs命令的各种使用技巧

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。下面这篇文章主要给大家介绍了关于linux中xargs命令用法的相关资料,需要的朋友可以参考借鉴,下面来跟着小编一起看看吧。

    spring-cloud-project.rar

    基于微服务架构(spring cloud)的微信聊天界面,发送消息基于stream流 ...Linux命令:安装支持:yum install maven dos2unix unzip -y 转换.sh文件为linux格式:find /home/spring-cloud-project -name "*.sh" | xargs

    Linux xargs命令的使用

    xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,xargs可能会误判。简单来说,...

    Linux_的命令find_xargs详述(1).txt

    Linux_的命令find_xargs详述(1)

    在Linux上使用xargs命令的详细教程

    在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令。xargs 可以将一个命令的输出作为参数发送给另一个命令。 在 Linux 中,...

    LINUX命令、编辑器与SHELL编程PDF.part01

    并且,当需要立即得到答案时,可以翻到本书的命令参考部分,这部分内容经过精心组织和标注,非常易于快速查找! 作者简介 Mark G.Sobell是Sobell Associates 公司的主席,该公司是一个专于UNLX/Linux 培训、技术...

    LINUX命令、编辑器与SHELL编程PDF.part02.rar

    Sobell是多本UNIX和Linux畅销书的作者,著有Prentice Hall PTR出版社出版的A Prac-tical Guide to Red Hat Linux,Second Edition一书,以及Addison-Wesley出版社出版的A Practical Guide to UNIX System,Hands-on ...

Global site tag (gtag.js) - Google Analytics