zoukankan      html  css  js  c++  java
  • 转 Linux常用命令 --find命令之exec详解

    Linux命令--find命令之exec
    exec解释:
    实例1:ls -l 命令放在 find 命令的 -exec 选项中
    实例2:在目录中查找更改时间在n 日以前的文件并删除它们
    实例3:在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示
    实例4: -exec 中使用 grep 命令
    实例5:查找文件并移动到指定目录
    实例6:用exec选项执行 cp 命令
    我们常用find的查询文件,查询之后,会做一些常用的操作,比如删除rm -rf ,这个时候,又不想用管道符,那么用exec就可以解决这个问题。

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

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

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

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

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

    2、解决:
    (1)、注意 是一对儿{},一个空格和一个,最后是一个分号
    (2)、在 ; 使用 “;” ‘;’ 这样把它们引起来。

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

    find . -type f -mtime +14 -exec rm {} ;

    在 shell 中用任何方式删除文件之前,应当先查看相应的文件,一定要小心,当使用诸如 mv 或 rm 命令时,  
    可以使用-exec 选项的安全模式,他将对每个匹配到的文件进行操作之前提示你。

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

    find . -name “*.log” -mtime +5 -ok rm {} ;

    查找当前目录中所有以 .log 结尾的,更改时间在 5 日以上的文件,并删除它们,并且在删除之前先给出提示。按y 键确定,n 键 取消。

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

    find /etc -name “passwd” -exec grep “root” {} ;

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

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

    find . -name “*.log” -exec mv {} … ;    //… 是路径名

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

    find . -name “*.log” -exec cp {} test3 ;

    一不小心又中招了,test3 是个目录,不然cp 不进去。
    ————————————————
    版权声明:本文为CSDN博主「徊忆羽菲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/guo_qiangqiang/article/details/86137868

    crontab -l

    每10天定时删除10天以前.nmon结束的文件

    * * */10 * * find /root/iNmon/ -mtime +10 -name "*.nmon" -exec rm -rf {} ;

  • 相关阅读:
    vi
    实用基本程序
    常用排序算法总结
    Windows 远程在Linux下 发布tomcat web程序
    Java 8 函数式编程
    Scanner
    Mysql【JDBC】
    RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1 #805
    KeyError: 'module_list.85.Conv2d.weight' #657
    C语言 BIT
  • 原文地址:https://www.cnblogs.com/python-xiakaibi/p/13228487.html
Copyright © 2011-2022 走看看