zoukankan      html  css  js  c++  java
  • 批量删除linux的文件;find方法批量删除文件;find查找某时间段内的所有文件

    1、如图所示,有大量文件夹,想批量删除它们

    2、使用命令 find . -maxdepth 1  -regex ".*ws.*" 可以批量找到他们。maxdepth值为1表示只在当前目录查找,不递归查找其子目录

    3、使用命令 find . -maxdepth 1  -regex ".*ws.*" -exec rm -rf {} ; 批量删除它们,这个世界瞬间清爽了很多

    ps注意后面的分号,不要省略啊

    4、使用命令 find . -maxdepth 1  -regex ".*ws.*" | xargs rm -rf 同样可以批量删除

    xargs是把前面的输出作为后面的参数,如果多行输出,就多次执行后面的命令

    5、有的linux系统支持的regex正则表达式不一样,可以使用下面的方式替换

    find . -maxdepth 1 -name "*ws*" | xargs rm -rf

    6、find使用正则:
        find . -regex ".*.(txt|sh)"
        加参数“-regextype type”可以指定“type”类型的正则语法,find支持的正则语法有:valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.

    显示20分钟前的文件
    find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} ;

    find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} +

    删除20分钟前的文件
    find /home/prestat/bills/test -type f -mmin +20 -exec rm {} ;

    显示20天前的目录
    find /home/prestat/bills/test -type d -mtime +20 -exec ls -l {} ;

    删除20天前的目录
    find /home/prestat/bills/test -type d -mtime +20 -exec rm {} ;

    在20-50天内修改过的文件

    find ./ -mtime +20 -a -mtime -50 -type f

    排除某些目录:

    find ${JENKINS_HOME}/jobs -maxdepth 1  -name "*" -mtime +60 ! -path /var/lib/jenkins/jobs | xargs ls -ld;

    排除某些文件:

    find ${JENKINS_HOME}/jobs -maxdepth 1  ! -name "*.xml" -mtime +60 ! -path /var/lib/jenkins/jobs | xargs ls -ld;

    理解下两种写法的区别:对结果没有影响;{}表示find找到的列表

    find . -exec grep chrome {} ;
    

    or

    find . -exec grep chrome {} +
    

    find will execute grep and will substitute {} with the filename(s) found. The difference between ; and + is that with ; a single grep command for each file is executed whereas with + as many files as possible are given as parameters to grep at once.

    find . -type f | while read f;  
    do   
    echo $f;  
    # do something  
    done  

    另外,可以使用-ok替换-exec操作:-ok相比-exec多了提示的功能,每一步都需要用户确认,这样对于rm操作,更加安全

    举例:找出内容为空的文件删除

     

    参考:

    https://javawind.net/p132

    http://man.linuxde.net/find

    https://unix.stackexchange.com/questions/12902/how-to-run-find-exec 

  • 相关阅读:
    linux的lsof命令
    linux find
    linux 查看磁盘空间大小
    eclipse运行时编码设置
    WebService工作原理
    Java获取字符串编码方式
    JavaScript,base64加密解密
    如何用javascript 的eval动态执行一个需要传对象参数的函数
    struts2结果类型
    执行maven-build.cmd失败
  • 原文地址:https://www.cnblogs.com/shengulong/p/6742027.html
Copyright © 2011-2022 走看看