1、find中的-exec参数

在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行

find ./ -name "*.txt" -exec grep "bin" {} \;

在当前目录下(包含子目录),删除所有txt文件

find ./ -name "*.txt" -exec rm {} \;

Execute  command;  true  if 0 status is returned.  All following arguments to find are taken to be arguments to the command until  an  argument  consisting of `;' is encountered.  The string `{}' is replaced by the current file name being processed  everywhere  it occurs in the arguments to the command, not just in arguments where it is alone.

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

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

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

在Linux bash shell中,语句中的分号一般用作代码块标识

单行语句一般要用到分号来区分代码块,例如:

weblogic@pmtest:/$if [ "$PS1" ]; then echo test is ok; fi
test is ok

该脚本或命令行中,需要两个分号才为正确的语句,第一个分号是then 前的分号,用于标识条件块结束,第二个分号在fi前,用于标识then块结束,如果缺少这两个分号,则程序执行错误。

以上,来自鸟哥[http://linux.vbird.org/linux_basic/0220filemanager.php]的相关介绍2、shell的内置命令命令exec

#!/bin/ksh

export LOG=/tmp/test.log

exec >> $LOG 2>&1

ls -l kevin.txt

exit 0

exec [arg]

If arg is present, executes arg in place of this shell.

(arg will replace this shell).

shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。

因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,用主脚本调用这个脚本,调用点处可以用bash a.sh,(a.sh就是存放该命令的脚本),这样会为a.sh建立一个sub shell去执行,当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。

source命令或者”.”,不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行。

不过,要注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。

exec 3<&0:这个命令就是将操作符3也指向标准输入。

find中的-exec参数的更多相关文章

  1. html代码中的form参数是基本一致的

    由于pear的大多数模块仍处于开发当中,因此,这里列举的是随着php4.05一起发布的pear中的模块,需要注意的是,一些抽象类或者是基类(如mail.php,log.php,cache.php)没有 ...

  2. 在sqlserver存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的

    最近在一项目修改中,要在存储过程中给in参数传值,语句写的也对,但怎么执行都得不出结果,如果把这语句直接赋值.执行,却能得出结果,很是奇怪,如: 直接执行select schoolname from ...

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

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

  4. python中eval, exec, execfile,和compile [转载]

    eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果. 同样地, exec语句将字符串str当成有效Python代码来执行. ...

  5. js正则表达式中test,exec,match方法的区别说明

    js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var ...

  6. python中eval, exec, execfile,和compile

    eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果. 同样地, exec语句将字符串str当成有效Python代码来执行. ...

  7. 如何理解javaSript中函数的参数是按值传递

    本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...

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

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

  9. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

随机推荐

  1. centos7 查看防火墙状态

    [root@xxx ~]# firewall-cmd --state not running

  2. Jmeter 老司机带你一小时学会Jmeter

    Jmeter的安装   官网下载地址:http://jmeter.apache.org/download_jmeter.cgi 作为Java应用,是需要JDK环境的,因此需要下载安装JAVA,并且作必 ...

  3. mybatis理解(0)

  4. Python day3_string的常见方法2_笔记

    1.分割字符串的4个方法partition,rpartition,split,rsplit(区别,partition是仅分割一个,split分割全部,r是从右边开始分割,split可以传参数,自定义分 ...

  5. Qt532的QString输出各种编码的16进制数组(测试代码)

    环境:Win7x64.Qt5.3.2 MSVC2010 OpenGL.vs2010 1.只测试了 4种:Utf8.Latin1.Local8Bit.unicode 2.测试代码:(这个是 " ...

  6. leecode第二十六题(删除排序数组中的重复项)

    class Solution { public: int removeDuplicates(vector<int>& nums) { int len=nums.size(); ) ...

  7. js 动画效果实现

    1. 实现方式 - 应用场景 自己写 - 简单的.不用 jq 的项目 jq - 普通动画 成熟插件 - 复杂动画 2. 相关文章 JavaScript基于时间的动画算法 九种原生js动画效果 Twee ...

  8. ubuntu 安装cuda 9.1 pytorch 0.3.0

    毕业再没用配过机器学习的环境了,既亲切又陌生,久违了. 系统 mint18  x64 1安装cuda 按官网提示 选的9.1版  https://developer.nvidia.com/cuda-t ...

  9. Codeforces 1005 E2 - Median on Segments (General Case Edition)

    E2 - Median on Segments (General Case Edition) 思路: 首先我们计算出solve(m):中位数大于等于m的方案数,那么最后答案就是solve(m) - s ...

  10. js中use或者using方法

    看Vue.use方法,想起了以前工作中别人用过的use方法. var YANMethod = { using:function() { var a = arguments, o = this, i = ...