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的文件;find方法批量删除文件;find查找某时间段内的所有文件的更多相关文章

  1. 安全删除linux旧内核的方法

    我们在用yum升级系统之后,希望往往会为我们保持旧的内核文件,这样以防在出现硬件或者软件冲突的时候我们能够返回到旧的内核文件继续使用,如果我们想要安全的删除旧的内核文件,可以follow下面的方法. ...

  2. (win+linux)双系统,删除linux系统的条件下,删除grub引导记录,恢复windows引导

    //(hdx,y) (显示查找到的分区号)第一个数字指第几个硬盘,第二个指第几个分区.   一般我们是(hd0,0) \n Linux的分区已经被你从Windows中删除,系统启动后停在“grub&g ...

  3. shell查找指定时间段内的文件

    #!/bin/bash#20170905 输入参数格式echo "显示"$1"的备份文件"date_0=$1date_1=`expr $date_0 + 1`d ...

  4. linux系统连接的概念及删除原理

    硬连接:ln 源文件 目标文件 软连接:ln -s 源文件 目标文件 (目标文件不能事先存在) 硬连接是通过索引节点inode来进行连接. 在Linux文件系统中,多个文件名指向同一个索引节点,硬连接 ...

  5. Java 基础【13】 文件(文件夹) 创建和删除

    使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节. 比如 File 类中的 mkdir() 和 mkdirs() 的区别. JDK API ...

  6. Linux find命令使用方法

      Linux中find命令用来在指定目录下查找文件.通过组合不同参数可以在linux系统中快速查找需要的文件或目录. find命令语法 格式:find pathname -options [ -pr ...

  7. Java 基础【16】 文件(文件夹) 创建和删除

    使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节. 比如 File 类中的 mkdir() 和 mkdirs() 的区别. JDK API ...

  8. php中读取以及写入文件的方法总结

    ==>读取文件内容(方法一) $fileData = fread($fileStream,filesize($filePath)); 注意: 文本文件读取到网页上显示时,由于换行符不被解释,文本 ...

  9. 在linux服务器下日志提取的python脚本(实现输入开始时间和结束时间打包该时间段内的文件)

    1.需求:近期在提取linux服务器下的日志文件时总是需要人工去找某个时间段内的日志文件,很是枯燥乏味,于是乎,我就想着用python结合linux指令来写一个日志提取的脚本,于是就有了以下脚本文件: ...

随机推荐

  1. 【转】EventBus 3.0使用详解

    原文:https://www.jianshu.com/p/f9ae5691e1bb 01 前言 当我们进行项目开发的时候,往往是需要应用程序的各组件.组件与后台线程间进行通信,比如在子线程中进行请求数 ...

  2. 关闭webstorm自动保存,并显示文件未保存标识

    1.取消自动保存 2.显示编辑状态设置:

  3. LoadRunner web_add_header()

    Action() { web_cleanup_cookies(); web_cache_cleanup(); web_url("entrypoint", "URL=htt ...

  4. 美团offer面经

    美团offer面经 2017北京美团金融服务平台,java后台研发方向,一共3面技术面+HR面,前两轮技术面在酒店面的,第三面和HR面在总部. 一面(重复问的部分就写一次了)(40分钟) 1.自我介绍 ...

  5. ubuntu 防火墙关闭的80端口,开启方法

    #关闭防火墙 /etc/init.d/iptables stopservice iptables stop # 停止服务#查看防火墙信息/etc/init.d/iptables status #开放端 ...

  6. JS 汉字与Unicode码的相互转化

    js文件中,有些变量的值可能会含有汉字,画面引入js以后,有可能会因为字符集的原因,把里面的汉字都变成乱码.后来发现网上的一些js里会把变量中的汉字都表示成”\u“开头的16进制编码,这样应该可以解决 ...

  7. JAVA编程思想读书笔记(一)--面向对象

    第二章 一切都是对象 No1: 程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据: (1) 寄存器.这是最快的保存区域,因为它位于和其他所有保存 ...

  8. SSM demo :投票系统

    框架: Spring SpringMVC MyBatis 题目: 投票系统 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspe ...

  9. WebApi使用JWT认证(二)

    这是第二部:实现NetCore上的WebApi使用JWT认证 1.NetCore新建一个WebApi的项目 2.打开AppSettings.json,添加Jwt的信息,这里为了演示而已 { " ...

  10. MySQL笔记(二)之数据检索常用关键字

    SELECT 用于数据的选择 语法: SELECT 列 FROM 表; #从表中选择某些列,也可以是*,代表全部列 DISTINCT 当某些列包含重复值的时候,DISTINCT用于过滤掉重复值,使重复 ...