1.这三个命令都可以将前面的输出做为后面的输入。

2.他们对于前面的输出,处理方式不同。

find . -name "*.sh" -exec cat {} \;

find . -name "*.sh" |cat

find . -name "*.sh" |xargs cat

示例一:

[root@host temp]# cat ex.sh
a.txt
b.txt
c.txt
d.txt
.txt
[root@host temp]# find . -name "ex.sh" -exec cat {} \;
a.txt
b.txt
c.txt
d.txt
.txt
[root@host temp]# find . -name "ex.sh"|cat
./ex.sh
[root@host temp]# find . -name "ex.sh"|xargs cat
a.txt
b.txt
c.txt
d.txt
.txt
[root@host temp]#

示例二:

[root@host django]# find . -name "*.py"
./siteone/blog/models.py
./siteone/blog/__init__.py
./siteone/blog/migrations/__init__.py
./siteone/blog/tests.py
./siteone/blog/views.py
./siteone/blog/admin.py
./siteone/siteone/urls.py
./siteone/siteone/__init__.py
./siteone/siteone/settings.py
./siteone/siteone/wsgi.py
./siteone/manage.py
[root@host django]# find . -name "*.py" -exec echo {} \;
./siteone/blog/models.py
./siteone/blog/__init__.py
./siteone/blog/migrations/__init__.py
./siteone/blog/tests.py
./siteone/blog/views.py
./siteone/blog/admin.py
./siteone/siteone/urls.py
./siteone/siteone/__init__.py
./siteone/siteone/settings.py
./siteone/siteone/wsgi.py
./siteone/manage.py
[root@host django]# find . -name "*.py" |echo [root@host django]# find . -name "*.py" |xargs echo
./siteone/blog/models.py ./siteone/blog/__init__.py ./siteone/blog/migrations/__init__.py ./siteone/blog/tests.py ./siteone/blog/views.py ./siteone/blog/admin.py ./siteone/siteone/urls.py ./siteone/siteone/__init__.py ./siteone/siteone/settings.py ./siteone/siteone/wsgi.py ./siteone/manage.py
[root@host django]#

总结:

exec会对每一个find找到的文件,执行一次命令。

xargs是把所有找到的文件名根据空格或者回车分割成一个一个的参数传递给命令

不用xargs的管道符是将前面的标准输出,做为后面命令的标准输入

带有xargs的管道符是将前面的标准输出,做为后面命令的参数

find参数exec、管道符|、xargs的区别的更多相关文章

  1. 关于 ‘--exec’ 参数( find 命令)及介绍 ‘xargs ’命令区别(新版)

    前言: find 命令一直都是系统管理员的常用命令之一, 其参数中 "-exec" 尤其实用.而 "xargs" 命令,针对查询也有属于自己的见解.本文着重讲解 ...

  2. 正则表达式中的exec和match方法的区别

    正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...

  3. Java不定参数Object… obj 和 Object[] 的区别

    Java不定参数Object… obj 和 Object[] 的区别 简述: java中方法重载可以实现参数不同自动匹配对应方法.但现实中也存在这种问题.普通传参对于形如下面的方法,却显得臃肿而失优雅 ...

  4. JMeter基础:请求参数Parameters 、Body Data的区别

    使用Jmeter测试时,很多人不知道请求参数Parameters .Body Data的区别和用途,这里简单介绍下 先了解一个接口的基本概念 在客户机和服务器之间进行请求-响应时,HTTP协议中包括G ...

  5. rake db:migrate 与 bundle exec rake db:migrate 的区别(copy)

    [说明:资料来自http://blog.csdn.net/lihuan974683978/article/details/8715414] 之前一直没弄明白rake  db:migrate 与 bun ...

  6. 传递集合参数以及SpringMVC和Struts2的区别

    一.传递集合参数 二.和Struts2的区别 Struts2是基于类封装请求参数,SpringMVC是基于方法封装参数:

  7. -exec 与 xargs 的区别

    实地在shell里执行下如下命令就知道区别了: $ find -type f -exec echo {} \; 很明显,exec是对每个找到的文件执行一次命令.从这里可以看出exec的缺点是每处理一个 ...

  8. 【转】exec xargs的区别 另附eval命令介绍

    -exec:  对符合条件的文件执行所给的Linux 命令,执行exec后面的shell脚本.脚本中,{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在命令中还 ...

  9. linux exec和xargs的区别

    -exec     1.参数是一个一个传递的,传递一个参数执行一次,效率低     2.文件名有空格等特殊字符也能处理 -xargs      1.一次将参数传给命令,可以使用-n控制参数个数     ...

随机推荐

  1. mysql sql语句为表批量增加字段

    方法一 这里可以使用事务 bagin; //事务开始 alter table em_day_data add f_day_house7 int(11); alter table em_day_data ...

  2. Makefile的学习笔记

    Makefile的学习笔记 标签: makefilewildcard扩展includeshellfile 2012-01-03 00:07 9586人阅读 评论(2) 收藏 举报  分类: Linux ...

  3. redis php扩展安装下载

    php的redis 扩展下载地址 Windows :http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 下载对应版本,一般有两个 n ...

  4. UvaLive6661 Equal Sum Sets dfs或dp

    UvaLive6661 PDF题目 题意:让你用1~n中k个不同的数组成s,求有多少种组法. 题解: DFS或者DP或打表. 1.DFS 由于数据范围很小,直接dfs每种组法统计个数即可. //#pr ...

  5. mysql update操作

    update语法 Single-table语法: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=ex ...

  6. C#委托全解析

    什么是委托?                                                                                       委托类似于C语 ...

  7. 黑客攻防技术宝典Web实战篇(二)工具篇

    扫描工具.中间攻击工具.加密解密工具等. 1 TM Thread Module 2 burpsuite 代理.中间攻击.repeatur.spider.暴力破解(intrude).加密.解密.扫描器 ...

  8. 【AngularJS】—— 2 初识AngularJs(续)

    前一篇了解了AngularJS的一些简单的使用,这里继续跟着w3c学习一下剩下的内容. 本篇根据w3cschool.cc继续学习AngularJS剩余的内容,包括: 1 事件 2 模块 3 表单 4 ...

  9. codevs4096 删数问题

    题目描述 Description 键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N 和S,寻找一种方案使得剩下的数字组成的新数最小. 输入 ...

  10. 2013nanjingJ

    J - Ball Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...