exec和xargs
参考: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的更多相关文章
- exec与xargs区别
区别描述: 两者都是对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令. -exec:{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在 ...
- linux中exec和xargs命令的区别和优劣分析
find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...
- find只查当前目录 和 -exec和xargs区别
1.find默认查找当前目录和子目录,通过maxdepth限制只查当前目录: find . -maxdepth 1 -type f -name "*.php" 2. find . ...
- -exec 与 xargs 的区别
实地在shell里执行下如下命令就知道区别了: $ find -type f -exec echo {} \; 很明显,exec是对每个找到的文件执行一次命令.从这里可以看出exec的缺点是每处理一个 ...
- -exec和|xargs
注意xargs会被空格割裂,所以遇到带有空格的文件名就不好办了,解决方法是使用-print0 例如:删除.目录下30天之前的.png文件 -type f -name rm 或者使用-exec:删除.目 ...
- find -exec 与xargs 区别
find . -name "*.txt" -exec rm {} \;find . -name "*.txt" | xargs rm {} -exec 1 ...
- find命令之exec和xargs
exec: find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是c ...
- linux exec和xargs的区别
-exec 1.参数是一个一个传递的,传递一个参数执行一次,效率低 2.文件名有空格等特殊字符也能处理 -xargs 1.一次将参数传给命令,可以使用-n控制参数个数 ...
- find命令应用exec及xargs
find最普通的用法是查找文件,然后要对文件进行处理就需要用到参数-exec. 先看下manpage中介绍: -exec command ; Execute command; status is re ...
随机推荐
- js-textarea文本换行符处理,Java后端以及js前端如何处理
方法一:后台处理 TextArea的换行符处理 TextArea文本转换为Html:写入数据库时使用 js获取了textArea的文本内容之后,器内容含有换行,空格,制表符之类的字符,但是js字符串不 ...
- HTML标签及属性
HTML 标签大全及属性 来源:http://www.cnblogs.com/Mr-liyang/p/5797976.html 基本结构标签:<HTML>,表示该文件为HTML文件< ...
- 使用zTree展开节点后,覆盖了下一个节点
如图所示,结果是zTree与<fieldset>标签不兼容....我去!!! 也就是说Ztree不能放在<fieldset>标签中..
- iOS 10 适配 ATS(app支持https通过App Store审核)
iOS 10 适配 ATS 一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据 ...
- 256. Paint House房屋染色
[抄题]: There are a row of n houses, each house can be painted with one of the three colors: red, blue ...
- rtx反向单点登录
1>通过ie浏览器的activx获取当前登录账户,其它浏览器不行,不支持activx. <%@ Page Language="C#" %> <!DOCTYP ...
- SQL Compare数据库版本比较工具
Red Gate系列文章: Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source C ...
- oracle 中时间类型 date 与 long 互转
我们在保存时间到数据库时,有时候会保存long型的数据,固定长度是13位,是用当前时间减去1970-01-01,再换算成毫秒得到的结果. 但是要考虑到时区问题中国的时区时+8区所以时间要加上8小时 o ...
- 手把手教你生成二维码-google.zxing
一.目标 输入网址,生成网址的二维码 二.概况 1.效果:UI丑,但功能实现了 2.项目目录 三.用到的第三方资源 1.google的扫码包zxing 2.JQuery 四.步骤(用myEclipse ...
- if-return 语句
if(A > B): return A+1 return A-1 or if(A > B): return A+1 else: return A-1 +++++++++++++++++++ ...