find 是我们很常用的一个Linux命令,但是我们一般查找出来的额并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。

  exec解释:

  -exec  参数后面跟的是 command 命令,它的终止是以“;”为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。  

  {} 花括号代表前面find查找出来的文件名。

  使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find 查找,很方便的。在有些操作系统中,只允许 -exec 选项执行诸如 ls 或 ls -l 这样的命令。大多数用户使用着一些选项是为了查找旧文件并删除它们。建议再真正执行 rm 命令删除文件之前,最好先用 ls 命令看一下,确认他们是所要删除的文件。 exec 选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。为了使用 exec 选项,必须要同时使用 print 选项。如果验证一下 find 命令,会发现该命令只输出从当前路径起的相对路径及文件名。

  实例1:ls -l 命令放在 find 命令的 -exec 选项中

  命令:

    find . -type f -exec ls -l {} \;   find 命令匹配到了当前目录下的所有普通文件,并在 -exec 选项中使用 ls -l 命令将它们列出。

    这个命令有点坑,不过确实很好用,说它坑是因为我输入的时候 收到提示:find 遗漏 -exec 的参数,^^

    解决:1.注意 是一对儿{},一个空格和一个\,最后是一个分号

         2.  在 \;  使用 “\;”    '\;'  这样把它们引起来。【“引起来”,感觉怪别扭的,不过想不出来怎么描述】

  实例2:在目录中查找更改时间在n 日以前的文件并删除它们

  命令:

    find .  -type f  -mtime +14 -exec rm {} \;       在 shell 中用任何方式删除文件之前,应当先查看相应的文件,一定要小心,当使用诸如 mv 或 rm 命令时,  

        可以使用-exec 选项的安全模式,他将对每个匹配到的文件进行操作之前提示你。

  实例3:在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示

  命令:

    find  .  -name  "*.log"  -mtime  +5   -ok  rm {} \;    查找当前目录中所有以  .log 结尾的,更改时间在 5 日以上的文件,并删除它们,并且在删除之前先给出提示。按y 键确定,n 键 取消。

  实例4: -exec 中使用 grep 命令

  命令:

    find /etc  -name "passwd"  -exec  grep  "root" {} \;

    任何形式的命令都可以在 -exec 选项中使用。 在上面的例子中我们使用 grep 命令。find命令首先匹配所有文件名为“passwd”的文件,然后执行 grep 命令查看这些文件中是否存在一个 root 用户。

  实例5:查找文件并移动到指定目录

  命令:

    find  .  -name  "*.log"  -exec  mv {} .. \;    ..  是路径名

  实例6:用exec选项执行 cp 命令

  命令:

    find  .  -name  "*.log"  -exec  cp {}  test3  \;   一不小心又中招了,test3 是个目录,不然cp 不进去。

  

最新文章

  1. CoreCRM 开发实录——开始之新项目的技术选择
  2. [php-src]Php扩展的多文件编译
  3. luogg_java学习_04_数组
  4. 通过KUDU获取Azure网站的日志
  5. heartbeat安装与配置
  6. 模板模式(C++) 【转】
  7. php获取文件创建时间、修改时间
  8. 集合框架学习之Guava Collection
  9. 关于textbox.attributes["value"]的问题
  10. Monkey学习笔记<四>:Monkey服务器命令
  11. java调用copy复制子文件夹及文件到指定目录(非xcopy)
  12. 对象存取器属性:getter和setter
  13. jquery的过滤学习
  14. ArcGIS Engine 笔记-控件类型
  15. 从零开始,搭建 AI 音箱 Alexa 语音服务
  16. day51 django第二天 django初识
  17. 无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
  18. PTA (Advanced Level) 1008 Elevator
  19. Java之List和Set
  20. JAVA Double去掉科学计数"E"

热门文章

  1. [Angular Tutorial] 0-Bootstraping
  2. 2.13.1. 对结果排序(Core Data 应用程序实践指南)
  3. Java 读写Properties配置文件
  4. docker的资源限制cpuset cpuquota memory
  5. jdk自带的动态代理
  6. UNIX网络编程中的需要注意的问题
  7. 使用Flex4容器若干技巧
  8. node源码详解(五) —— 在main函数之前 —— js和C++的边界,process.binding
  9. CodeForces 721A
  10. Swing JComboBox的使用