xargs命令的详解

  • A+
所属分类:运维教程

xargs命令是给其他的命令传递参数的一个过滤器,同时是组合多个命令的一个工具。

它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或stdin并将其转换成特定命令的命令参数。

xargs也可将单行或多行文本输入转换为其他格式,如多行变单行,单行变多行等。

xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将会被空格取代。

xargs是构建单行命令重要组件之一。用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

xargs命令的详解

多行输入单行输出:

xargs命令的详解

-n选项可指定行数输出:

xargs命令的详解

-d选项可自定义一个定界符:

xargs命令的详解

可结合-n选项使用:

xargs命令的详解

读取stdin将格式化后的参数传递给命令。复制所有图片文件到/birdteam.net目录:

  1. ls *.jpg | xargs -n1 -I cp {} /birdteam.net

xargs结合find使用。用rm删除太多文件时候,会得到一个错误信息/bin/rm Argument list too long。可用xargs去避免这个问题:

  1. find . -type f -name "*.log" -print0 | xargs -0 rm -f

xargs -0将\0作为定界符。

统计一个源代码目录中所有php文件的行数:

  1. find . -type f -name "*.php" -print0 | xargs -0 wc -l

查找所有的jpg文件,并且压缩它们:

  1. find . -type f -name "*.jpg" -print | xargs tar -zcvf images.tar.gz

xargs的其他应用。假如你有一个文件包含了很多你希望下载的URL,你能够使用xargs下载所有链接:

  1. cat url-list.txt | xargs wget -c
  • 问答中心
  • 微信小程序扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:31   其中:访客  31   博主  0

    • avatar for

      Someone essentially help to make seriously articles I would state. This is the first time I frequented your website page and thus far? I surprised with the research you made to make this particular publish incredible. Excellent job!