一. find的基本查询命令

find命令最常用的是查找某个文件,如:

find ./ -name "abc.txt"

则会在当前目录及子目录下查找abc.txt文件

更常用的是查找某一类型的文件,如:

find ./ -name "*.txt"

则会在当前目录及子目录下查找所有txt文件,但是如果要查找多种文件类型呢?比如某文件夹下面所有.c文件和.h文件,可以这样做:

find ./ -name "*.[ch]"

找到当前目录下的jpg文件和png文件

find . -name "*.jpg" -o -name "*.png"

找出当前目录下不是以png结尾的文件
find . ! -name "*.png"

二. find的多查询后执行

根据正则表达式查找

备注:正则表示式比原先想的要复杂,支持好几种类型。可以参考这里

找到当前目录下,文件名都是数字的png文件。

find . -regex "\./*[0-9]+\.png"

根据路径查找

找出当前目录下,路径中包含wysiwyg的文件/路径。

find . -path "*wysiwyg*"

根据文件类型查找

通过-type进行文件类型的过滤。

  • f 普通文件
  • l 符号连接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p Fifo

举例,查找当前目录下,路径中包含wysiwyg的文件

find . -type f -path "*wysiwyg*"

限制搜索深度

找出当前目录下所有的png,不包括子目录。

find . -maxdepth 1 -name "*.png"

相对应的,也是mindepth选项。

find . -mindepth 2 -maxdepth 2 -name "*.png"

根据文件大小

通过-size来过滤文件尺寸。支持的文件大小单元如下

  • b —— 块(512字节)
  • c —— 字节
  • w —— 字(2字节)
  • k —— 千字节
  • M —— 兆字节
  • G —— 吉字节

举例来说,找出当前目录下文件大小超过100M的文件

find . -type f -size +100M

根据访问/修改/变化时间

支持下面的时间类型。

  • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  • 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

举例,找出1天内被修改过的文件

find . -type f -mtime -1

找出最近1周内被访问过的文件

find . -type f -atime -7

将日志目录里超过一个礼拜的日志文件,移动到/tmp/old_logs里。

find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/old_logs \;

注意: {} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

另外,\;用来表示命令结束,如果没有加,则会有如下提示

find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/old_logs \;

根据权限

通过-perm来实现。举例,找出当前目录下权限为777的文件

find . -type f -perm 777

找出当前目录下权限不是644的php文件

find . -type f -name "*.php" ! -perm 644

根据文件拥有者

找出文件拥有者为root的文件

find . -type f -user root

找出文件所在群组为root的文件

find . -type f -group root

找到文件后执行命令

通过-ok、和-exec来实现。区别在于,-ok在执行命令前,会进行二次确认,-exec不会。

看下实际例子。删除当前目录下所有的js文件。用-ok的效果如下,删除前有二次确

find . -type f -name "*.js" -ok rm {} \;
"rm ./1.js"?

试下-exec。直接就删除了

find . -type f -name "*.js" -exec rm {} \;

找出空文件

例子如下

touch {1..9}.txt
echo "hello" > 1.txt
find . -empty

查找两天前修改过的文件:

find . -type f -mtime -2

查找3天内修改过的文件:

find -ctime -3

find命令查找使用超过6天,空文件独立查询命令:

find /data/backup -ctime +6 -exec rm -f {} \;

删除/data/backup目录下修改时间超过6天的文件。

find /data/backup -type d -empty -exec rmdir {} \; >/dev/null 2>&1

删除/data/backup目录下空的文件夹,同时输出正确和错误信息到空。

查找超过6天且是空文件的find命令:

find ./ -type d -empty -ctime +6

按修改时间来查找文件,要用到选项-mtime:

find /home/admin -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件
find /home/admin -name *.txt -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件名为.txt结尾的文件

find的基本查询命令《一》的更多相关文章

  1. DBA查询命令积累——不断更新

    原文:DBA查询命令积累--不断更新 一.服务器配置: 1.兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为. 1.1.查看数据库兼容级别及更改兼容级别: SELECT com ...

  2. MySQL常用的查询命令

    MySQL常用的查询命令 author: headsen chen   2017-10-19  10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ...

  3. MongoDb进阶实践之六 MongoDB查询命令详述(补充)

    一.引言         上一篇文章我们已经介绍了MongoDB数据库的查询操作,但是并没有介绍全,随着自己的学习的深入,对查询又有了新的东西,决定补充进来.如果大家想看上一篇有关MongoDB查询的 ...

  4. AD域控Dsquery查询命令实列

    注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户          dsquery user OU=技术支持二部,OU=技术部, ...

  5. 手机WiFi万能钥匙查看破解的password和手机查询命令收集

    手机须要网络利用WiFi万能钥匙破解了WIFI的password.手机就能够上网了,但假设想在电脑上使用手机破解的Wifi热点上网就须要password,此时须要知道手机破解的password,WiF ...

  6. Android系统代码查询命令集合

    Android系统代码查询命令集合 *#06# 显示MEID *#*#4636#*#* 显示版本,或更新相机韧体 *#*#7594#*#* 当长按关机按钮时,会出现一个切换手机部分设置及更改设定 WL ...

  7. Eucalyptus常用查询命令

    前言: Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus)  ...

  8. ELK查询命令详解

    目录 ELK查询命令详解 倒排索引 使用ElasticSearch API 实现CRUD 批量获取文档 使用Bulk API 实现批量操作 版本控制 什么是Mapping? 基本查询(Query查询) ...

  9. FFmpeg常用命令学习笔记(一)基本信息查询命令

    笔者才开始学习音视频开发,FFmpeg学习笔记系列主要是从慕课网李超老师的FFmpeg音视频核心技术精讲与实战课程学习的心得体会. FFmpeg音视频核心技术精讲与实战:https://coding. ...

随机推荐

  1. OpenMP Programming

    一.OpenMP概述 1.OpenMP应用编程接口API是在共享存储体系结构上的一个编程模型 2.包含 编译制导(compiler directive).运行库例程(runtime library). ...

  2. 5G 将带给程序员哪些新机会呢?

    5G,第 5 代移动通信技术,华为在此领域远远领先同行,这也让它成了中美贸易战的最前线.我的第一份工作就在通信行业,当时电信标准都在欧美企业手里,国内企业主要是遵照标准研发软硬件设备,核心芯片靠进口. ...

  3. HashMap底层源码剖析

    HashMap底层源码剖析 一.HashMap底层用到的数据结构 数组+单向链表+红黑树 数组:数组每一项都是一个链表,其实就是数组和链表的结合体 单向链表:当法神hash碰撞时,首先会找到数组对应位 ...

  4. BrowserSync(前端利器—保存代码后,自动刷新浏览器)

    摘要 Browsersync能让浏览器实时.快速响应您的文件更改(HTML.JavaScript.CSS.Sass.Less.PHP.Python等)并自动刷新页面.更重要的是 Browsersync ...

  5. Docker Compose 文件讲解

    Docker Compose 是什么 官方文档: Docker Compose是定义和运行多容器 Docker 应用程序的工具.使用"Compose",您可以使用 YAML 文件来 ...

  6. hive实践_01

    本地一份包含有中文的文本文件在上传到hive前,需要先转化为UTF-8格式,否则会出现乱码.(notepad++ 格式>>>转化UTF-8编码格式)   -------------- ...

  7. 基于Python3 + appium的Ui自动化测试框架

    UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...

  8. Java多线程并发06——CAS与AQS

    在进行更近一步的了解Java锁的知识之前,我们需要先了解与锁有关的两个概念 CAS 与 AQS.关注我的公众号「Java面典」了解更多 Java 相关知识点. CAS(Compare And Swap ...

  9. java -输入年龄判断是否符合范围。

    //创建的一个包名. package demo3; //定义一个类. public class Test { //公共静态的主方法. public static void main(String[] ...

  10. [Alg] 文本匹配-多模匹配-AC自动机

    1. 简介 AC自动机是一种多模匹配的文本匹配算法. 如果采用naive的方法,即依次比较文本串s中是否包含模式串p1, p2,...非常耗时.考虑到这些模式串中可能具有相同子串,可以利用已经比较过的 ...