参考:http://www.cnblogs.com/itxdm/p/5936907.html

一. 先复习下find命令

1. name参数

find -name tom 或 find -iname tom    #其中参数 -iname不区分大小写

2. type参数

find /root -name rabbit -type f

普通文件用 f 表示;符号连接用 l 表示;普通目录用 d 表示;字符设备用 c 表示;块设备用 b 表示;套接字用 s 表示

3. size参数

find /root -type f -size 10M

注:关于 “ -size 10M ” 在大小单位上是允许 “+” “-” 操作的。即 “+10M” 大于10M, “-10M” 小于10M

find的参数还有很多已经和本文后面内容无关,这里列出三个。文章继续...

比如:-perm可以选择权限,-user可是选择用户,-group可以选择用户组等

二.  exec  --- 它其实是find命令的一个重要参数

-exec command:command 为其他指令,-exec后面可再接额外的指令来处理搜寻到的结果。

{ }代表的是「由 find 找到的内容」,如上图所示,找到的结果会被放置到 { } 位置中; 注意{ }前后有空格。
-exec一直到 ; 是关键字,代表找到额外动作的开始(-exec)到结束(),在这中间的就是找到指令内的额外动作

因为「;」在bash的环境下是有特殊意义的,因此利用反斜线来跳脱。

# 显示

find /root/.ssh -exec ls -l {} \ ;

#删除

find /root -size 10M -exec rm -rf {} \;

# 重命名

find /root -name tom -exec mv {} tom_rename \;

# 移动

find /root -name tom_rename -exec mv {} /tmp \;

三. xargs

1. 定义界定符

在 “xargs” 中是有 “界定符” 的,类似 find 中 { } ,代表的是「由 xargs 找到的内容」。xargs 不需要 “;” 做结束符。

另:关于定义界定符(-I),有一点很多文章都没有强调

使用 xargs 命令时并不是一定要使用 “{}” 方括号的,可能是因为 find 命令的( -exec )默认是 “{}” (为了统一)使用其他的定义符都是可以的(甚至你都可以用英文,数学等作为定义界定符)

2. “xargs” is command not parameter(参数)

xargs 是一条命令,您可以通过 help 或者 man 查询到关于 xargs 的详细信息。

这条性质赋予了 xargs 更多的可能性,而不仅仅受限于 find 命令

3. xargs命令的使用

# 显示

find /root -name Tom | xargs -I {} ls -ld {}

# 删除

find /root -name Tom | xargs rm -rf

# 重命名

find /root -name RABBIT | xargs -I - mv - RABBIT_NEW

# 移动

find /root -name RABBIT_NEW | xargs -I 8 mv 8 /tmp

注意:xargs命令貌似不支持egrep过滤出来的内容,支持grep的过滤,例如

ls | grep ^.[0-9].* | xargs -I{} rm -rf {}     可删除过滤出来的多个文件夹

ls | egrep ^.[0-9]+.* | xargs -I {} rm -rf {}   无效

exec和xargs的更多相关文章

  1. exec与xargs区别

    区别描述: 两者都是对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令. -exec:{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在 ...

  2. linux中exec和xargs命令的区别和优劣分析

    find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...

  3. find只查当前目录 和 -exec和xargs区别

    1.find默认查找当前目录和子目录,通过maxdepth限制只查当前目录: find . -maxdepth 1 -type f -name "*.php" 2. find . ...

  4. -exec 与 xargs 的区别

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

  5. -exec和|xargs

    注意xargs会被空格割裂,所以遇到带有空格的文件名就不好办了,解决方法是使用-print0 例如:删除.目录下30天之前的.png文件 -type f -name rm 或者使用-exec:删除.目 ...

  6. find -exec 与xargs 区别

    find . -name "*.txt" -exec rm {} \;find . -name "*.txt" | xargs rm {} -exec    1 ...

  7. find命令之exec和xargs

    exec: find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是c ...

  8. linux exec和xargs的区别

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

  9. find命令应用exec及xargs

    find最普通的用法是查找文件,然后要对文件进行处理就需要用到参数-exec. 先看下manpage中介绍: -exec command ; Execute command; status is re ...

随机推荐

  1. vue的样式绑定

    vue在样式绑定,看这官方的文档,怎么试都不行后来看了一篇文章 <div :class="[rankClass]"></div> <script> ...

  2. CecOS Virtualization

    CecOS CecOS 是 OPENFANS 为中小型企业提供企业开源云计算解决方案的基础框架:CecOSvt 是一款运行在社区企业云操作系统(CecOS)上的虚拟化开放式解决方案. 也可用演示模式. ...

  3. 心理学轨迹及AI基础理论读后感

    今天简单的看了下心理学轨迹及AI基础理论发现世界确实是那3%的人改变的,我等屁民还努力在红尘中争渡,下面简单记录下我刚看完的思路,算做个笔记给自己看.. 模型建立的最终结果可以解读所有的心理学现象,可 ...

  4. C#序列化效率对比

    原文出处:https://www.cnblogs.com/landeanfen/p/4627383.html 从使用序列化到现在,用到的无非下面几种方式:(1)JavaScriptSerializer ...

  5. .NET开源MSSQL、Redis监控产品Opserver之MSSQL配置

    MSSQL的配置比较简单,主要包括三部分: 默认配置(defaultConnectionString).集群配置(clusters).单实例配置(instances) defaultConnectio ...

  6. Hadoop分布式模式下SSH免密码登录

    1.Hadoop中为什么要配置免密码登录 最近在学习Hadoop,在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SS ...

  7. 可epoll队列

    什么是可epoll队列? 就可以使用epoll来监控队列中是否有数据的队列,当然也支持select和poll. 应用场景 一个线程,需要将队列(共享内存队列或普通队列均可)中的数据取出来,然后通过网络 ...

  8. servlet及xml文件处理流程

    启动项目----会找到web.xml文件---跳转到默认jsp----页面重定向----转到xml.文件下 通过<servlet-mapping>映射找到<servlet>标签 ...

  9. android多lib库工程的自动批量构建--编写ant脚本

    基本配置--build.properties 首先编写基本配置build.properties ,主要配置如下: android sdk所在目录 编译项目所使用的项目版本 Jdk所在目录 以及签名时, ...

  10. Android-ListView-(BaseAdapter初步)

    在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...