find -exec 与xargs 区别
find . -name "*.txt" -exec rm {} \;
find . -name "*.txt" | xargs rm {}
-exec
1.参数是一个一个传递的,传递一个参数执行一次rm
2.文件名有空格等特殊字符也能处理
-xargs
1.一次将参数传给命令,可以使用-n控制参数个数
2.处理特殊文件名需要采用如下方式:
find . -name "*.txt" print0 |xargs -0 rm {}
实验结果如下,可以清楚看到参数传递过程
- [root@andes.com ~/tmp/dir]#find . -type f |xargs -t -n 2 echo
- echo ./data.txt ./env2.txt
- ./data.txt ./env2.txt
- echo ./env.txt ./export2.txt
- ./env.txt ./export2.txt
- echo ./s.txt ./d.txt
- ./s.txt ./d.txt
- echo ./export.txt ./set.txt
- ./export.txt ./set.txt
- echo ./fuck.txt
- ./fuck.txt
- [root@andes.com ~/tmp/dir]#find . -type f -exec echo begin {} \;
- begin ./data.txt
- begin ./env2.txt
- begin ./env.txt
- begin ./export2.txt
- begin ./s.txt
- begin ./d.txt
- begin ./export.txt
- begin ./set.txt
- begin ./fuck.txt
- [root@andes.com ~/tmp/dir]#
技巧: find -print0 与 xargs -0 的结合避免文件名有特殊字符如空格,引号等无法处理:
find . -name "*.txt" print0 |xargs -0 rm {}
find
-print True; print the full file name on the standard output, followed by a newline. If you are piping the
output of find into another program and there is the faintest possibility that the files which you
are searching for might contain a newline, then you should seriously consider using the -print0
option instead of -print. See the UNUSUAL FILENAMES section for information about how unusual char-
acters in filenames are handled.
-print0
True; print the full file name on the standard output, followed by a null character (instead of the
newline character that -print uses). This allows file names that contain newlines or other types of
white space to be correctly interpreted by programs that process the find output. This option corre-
sponds to the -0 option of xargs.
xargs
-0 Input items are terminated by a null character insteadof by
whitespace, and the quotes and backslash are not special (every
character is taken literally). Disables the end of file string,
which istreated like
any other argument. Useful when input
items might contain white space, quote marks, or backslashes.
The GNU find -print0 option produces input suitable for this
mode.
find -exec 与xargs 区别的更多相关文章
- exec与xargs区别
区别描述: 两者都是对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令. -exec:{}表示命令的参数即为所找到的文件,以:表示comman命令的结束.\是转义符,因为分号在 ...
- find只查当前目录 和 -exec和xargs区别
1.find默认查找当前目录和子目录,通过maxdepth限制只查当前目录: find . -maxdepth 1 -type f -name "*.php" 2. find . ...
- linux中exec和xargs命令的区别和优劣分析
find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...
- -exec 与 xargs 的区别
实地在shell里执行下如下命令就知道区别了: $ find -type f -exec echo {} \; 很明显,exec是对每个找到的文件执行一次命令.从这里可以看出exec的缺点是每处理一个 ...
- linux find查找并拷贝 exec xargs区别
-exec 1.参数是一个一个传递的,传递一个参数执行一次rm 2.文件名有空格等特殊字符也能处理-xargs 1.一次将参数传给命令,可以使用-n控制参数个数 2.处理特殊 ...
- linux exec和xargs的区别
-exec 1.参数是一个一个传递的,传递一个参数执行一次,效率低 2.文件名有空格等特殊字符也能处理 -xargs 1.一次将参数传给命令,可以使用-n控制参数个数 ...
- -exec和|xargs
注意xargs会被空格割裂,所以遇到带有空格的文件名就不好办了,解决方法是使用-print0 例如:删除.目录下30天之前的.png文件 -type f -name rm 或者使用-exec:删除.目 ...
- test、exec、match区别
test.exec.match的简单区别 1.test test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c"; var reg = ...
- js中, match和exec方法的区别
1. 来源分别为: string.match(reg) 和 RegExp.exec(str): 2. 区别 > 现有 字符串s1 和 正则对象 r1. 目标: 抽出s1中的所有电话号码 ...
随机推荐
- C++可变参数列表处理宏va_list、va_start、va_end的使用
VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef _M_ALPHA typedef struct{ char* a0; /* ...
- IT痴汉的工作现状42-Android越用越慢?立场不同,谈何信任!
大海和我一次闲聊中问,你做安卓这么久.能给我解释一下为什么安卓手机用半年后就变慢吗? 呃... 伟仔还真是头一次听说这么精准的半年就慢的说法. 大海继续说."能不能是厂家有益设置的?哦,也不 ...
- 转:fastText原理及实践(达观数据王江)
http://www.52nlp.cn/fasttext 1条回复 本文首先会介绍一些预备知识,比如softmax.ngram等,然后简单介绍word2vec原理,之后来讲解fastText的原理,并 ...
- Grid 拾遗
*.GridSplitter属性是Grid面板的一个特性.(1)预留一行或一列,专门用于放置 GridSplitter对象,如果是行的话,把其Height 设置为 Auto,如果是列的话,把其 Wid ...
- 解决excel日期变成数字的问题
在Excel中如果单元格的公式是日期格式,那么引用后的数值是错误的[不是日期格式而被转换成数字类型了],这种情况显然不是我们想要的结果 解决办法: 在公式中强制转成文本类型即可(="Date ...
- LogCat用法2
如果adb devices显示设备的状态是offline, 这是可以看手机的通知栏,会有一个"触摸以设置USB"这样一个类似的提示,触摸它以后会要求你选择USB的用途,选择第二个' ...
- PDO 增删改查封装的类
Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...
- JavaScript 将行结构数据转化为树形结构,可提供给常用的tree插件直接使用(高效转化方案)
前台接收到的数据格式 var rows=[{ parent: 'root', id: 'DC', title: '集团' }, { parent: 'DC', id: '01', title: '上海 ...
- NSLayoutConstraint的简单应用
UIView *topView = [[UIView alloc] init]; topView.backgroundColor = [UIColor redColor]; [self.view ad ...
- 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]
转载:https://www.abcdocker.com/abcdocker/2065 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkin ...