比如一个例子

echo "README.md" |cat

echo "README.md" |xargs cat

第一个例子只是输出了README.md的文件名,而后面那个命令就把文件内容都输出到终端

事实上,xargs可以把从STDIN接收的输入,用空格隔开,然后依次作为参数去调用xargs后面的命令

比如,假如我们要删除当前目录下的pdf文件,

find .  -name "*.pdf" |xargs  rm

看上去没有什么问题,但是假如文件中带有空格那么就有问题了。

解决:

find  . –name  "*.pdf"  -print0 |xargs  –0  rm

这里-print0告诉find在每个输出后面以'\0'结尾,-0告诉xargs用'\0'分隔,而不是空格。当然用户可以根据自己的意愿将'\0'换成自己想要的分隔符

如果要批量修改所有pdf文件的后缀名

find  . –name  "*.pdf"  -print0 |xargs  –0  -I {}  mv  {}  {}.doc

-I {}是告诉xargs后面的命令中用{}表示占位符,将会被指定的参数替代。也可以将换成i

更多参数说明:

-p(小写):操作具有可交互性,每次执行command都交互式提示用户选择

-P(大写):修改最大进程数

-t:先打印命令,再执行后面的命令

比如:

$ date|xargs -t echo "xargs"
echo xargs 2017年03月 6日 20:07:36
xargs 2017年03月 6日 20:07:36

-a:从文件中读入作为标准输入

-e、-E:作为一个标志位,xargs分析到这个标志位后停止

-r:假如在|xargs前面没有传入参数,那么就停止xargs,直接退出

-n:只限制参数的个数,默认无

-d:设置分隔符,xargs默认的是回车,参数默认的是空格,这个参数修改xargs的

-s:设置每次构造命令(xargs后面的命令)的长度

-x:主要配合-s使用,如果满足了条件之后退出

-l、-L:从标准输入中一次读取n行传递给命令

比如:

$cat  file

a

b

c

$cat file |xargs –L 2 echo

a

b

参考:http://blog.csdn.net/yhcharles/article/details/44875865

Linux命令-xargs的更多相关文章

  1. linux命令--xargs的使用

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

  2. linux 命令 — xargs

    xargs xargs能接收stdin并将其转化为特定命令的命令行参数,构建单行命令的重要工具 command | xargs 指定分隔符 echo "splitXsplitXsplitXs ...

  3. Linux命令xargs的使用

    ls | xargs catls | xargs -I {} cat {}  大写I,指定参数的替换符号为{} 自定义

  4. 开发必备linux命令大全-稳赚不亏

    我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须.接下来将一一详细介绍一些常用的linux的命令 文件操作 远程登录与操作 磁盘挂载 进程管理 启动和结束 系统性能参数查看 ...

  5. 每天一个 Linux 命令(21):find命令之xargs

    在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...

  6. linux命令瞎记录find xargs

    1.创建多个文件 touch test{0..100}.txt 2.重定向 “>>” 追加重定向,追加内容,到文件的尾部 “>” 重定向,清除原文件里面所有内容,然后把内容追加到文件 ...

  7. Linux命令:xargs命令详解,xargs与管道的区别

    阅读目录 为什么要用xargs,问题的来源 xargs是什么,与管道有什么不同 xargs的一些有用的选项 回到顶部 为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人 ...

  8. 每日linux命令学习-xargs命令

    xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据 ...

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

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

随机推荐

  1. NTP同步网络时间

    为什么要同步网络时间呢,这是由于树莓派没有RTC和后备电池,不能像PC机那样关机之后仍可以走时. NTP对时步骤: 1 安装ntpdate sudo apt-get install ntpdate s ...

  2. angularJS1笔记-(8)-内置指令

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. IE8+SpringMVC文件上传防止JSON下载

    今天在IE8测试文件上传的时候发现总是提示下载,原因是上传接口返回的是json,通过以下修改就可以保证返回是json并且不会出现下载的情况: @RequestMapping(value = " ...

  4. 补交第一周:coding net

    coding net:https://coding.net/u/yuanyuancheng git openssh: 四则运算 https://git.coding.net/yuanyuancheng ...

  5. java 调用 oracle的function 和 procedure

    1.调用函数 CallableStatement cs=con.prepareCall("{?=call get_pname(?,?,?)}"); 第一个?表示返回的值,后面的?可 ...

  6. [转帖]TLS 版本问题

    转帖 From https://www.cnblogs.com/xjnotxj/p/7252043.html 一.环境: CentOS 6.8nginx 1.6.0php 7.0.10 二.背景 最近 ...

  7. iOS 扩展类方法之category!

    一.category介绍 category可以不修改源代码的基础上扩展新的方法,Category只能用于方法,不能用于成员变量. 二.category创建 Example:我们扩展NSString类新 ...

  8. Java参数引用传递之例外:null

    今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化. 原来是null作为参数传递的时候,就不是引用传参了. 引自:http://blog.cs ...

  9. 一个非典型的Linux路由配置方案

    上周帮人解决了一个问题,这个问题绝对是非典型性的,采用了非常规的方法.虽然最终的方案非常不符合常规,非常不通用,充满了各种藏得很深的技巧或者说是trick,但是这个问题却是一个学习Linux路由的绝好 ...

  10. 【BZOJ1922】大陆争霸(最短路)

    [BZOJ1922]大陆争霸(最短路) 题面 BZOJ 洛谷 题解 最短路变形题. 定义\(dis\)表示最短路,\(d\)表示最早可以进入当前点的时间.显然\(d=max(max(dis_v,d_v ...