zoukankan      html  css  js  c++  java
  • find -exec

    整理的find,exec,xargc的用法,从网上找到一些简单的基本用法,供大家参考

    find /etc/rc.d -name '*crond' -exec file {} ;

    查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性,注意:exec和file间是一个空格,file和{}间是一个空格,{}和;之间是一个空格,;是一个整体。

    find ./ -type -mtime +5 -maxdepth 1 -exec rm -rf {} ;

    find ./ -type -ctime +30 | xargs rm -f

    -exec

    选项可用于您能够想象到的所有用途。例如:

    find . -empty -exec rm '{}' ;

    删除目录树中的所有空文件

    find . -name "*.htm" -exec mv '{}' '{}l' ;

    将所有 .htm 文件重命名为 .html 文件。

    由于exec 能接受的长度有些系统会有限制

    所以xargs 就有了其伟大价值

    xargs 接到参数就开始处理 而不是像exec 那样土鳖 非要接受到全部

    如 果在find命令后加上 -exec,就可以把找出来的东西进行操作,通常用-exec会提示这样的错误:“find: missing argument to `-exec’”,这是由于 -exec 需要以 “;” 作为命令的终结符,加上它就不会出现缺少参数的错误提示。

    简单用法:

    find tmp/binary/ -name “*909150827*” -exec more {} ;

    找到相关的文件然后more一下

    还有就是删除所有.tmp的临时文件

    find / -name “*.tmp” -exec rm -f {} ;

    exec 与 xargs的区别

    xargs:通过缓冲方式并以前面命令行的输出作为参数,随后的命令调用该参数

    若忽略 xargs 的 options 来看的话,
    cm1 | xargs cm2
    可以单纯看成: cm2 `cm1`
    因此, find .... | xargs rm 也可作 rm `find ...` 来处理.
    然而, 若 find 的结果太多, 可能会超过rm 可能接受的最大argument数量而失败.

    xargs优点:由于是批处理的,所以执行效率比较高(通过缓冲方式)

    xargs缺点:有可能由于参数数量过多(成千上万),导致后面的命令执行失败

    若换成 find ....-execrm {} ; 的话,
    因为rm 是"逐个" item 去处理的, 则无此忧虑

    例子:(在当前目录下查找包含hello字符的文件)

    1。最傻方法:grep hello * **/*

    2。使用exec

    [admin@b2b_search_115 test]$ find . -type f -print -exec grep "hello" {} ;
    ./file/test3
    hello
    ./test1
    hello
    ./test2

    3。使用xargs

    [admin@b2b_search_115 test]$ find . -type f -print | xargs grep hello     
    ./file/test3:hello
    ./test1:hello

  • 相关阅读:
    b站评论爬取
    推算身份证的生日位
    mac安装mysql
    H3C V7版本的系统默认权限
    H3C IRF2的三种配置情况
    一张图看懂高通QC1.0-QC4.0快充进化之路!QC2.0跟QC3.0充电区别
    云服务器 ECS Linux 软件源自动更新工具
    透明代理、匿名代理、混淆代理、高匿代理有什么区别?
    ping正常但是ssh到linux服务器很卡的解决方法
    Python GUI编程(Tkinter) windows界面开发
  • 原文地址:https://www.cnblogs.com/franjia/p/4384390.html
Copyright © 2011-2022 走看看