一. 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. 使用pyecharts绘制词云图-淘宝商品评论展示

    一.什么是词云图? 词云图是一种用来展现高频关键词的可视化表达,通过文字.色彩.图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息. 制作词云图的网站有很多,简单方便,适合小批量操作. BI ...

  2. ggplot2(8) 精雕细琢

    8.1 主题 主题系统控制着图形中的非数据元素外观,它不会影响几何对象和标度等数据元素.这题不能改变图形的感官性质,但它可以使图形变得更具美感,满足整体一致性的要求.主题的控制包括标题.坐标轴标签.图 ...

  3. php里面的一些面试经典的函数

    <?php /* 这是一个多线程的读取解决的函数 @param1 $fle 传入要读取的文件名 */ function filelock($fle){ $fp=fopen($fls,'w+'); ...

  4. Python基础数据类型2

    lst.extend([1,2,3]) # 扩展 --- 迭代添加 整型和布尔值不能迭代print(lst) lst1 = [1,2,3]lst2 = [4,5,6]lst3 = lst1 + lst ...

  5. js函数的三种成创建方式以及它们各自的不同

    js有三种创建函数的方式: 1.function语句(也叫函数声明) function sum(a, b) { return a + b; } sum(1, 2); // 3 2. 函数直接量,又叫函 ...

  6. appnium适应之配置

    一.session #获取包名和acctivename#这个工具在adk包里面aapt.exe dump badging E:\Wandoujia_851097_web_seo_baidu_binde ...

  7. 页面高度自适应方法(PC、移动端都适用)

    有个项目移动端的首页需要自适应. 宽度已经自适应了 , 高度也要自适应 ,先总结一下方法,PC端也适用. $(function(){ var h = window.innerHeight; $(&qu ...

  8. 后端程序员必备:书写高质量SQL的30条建议

    前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助. 1.查询SQL尽量不要使用select *,而是select具体字段. 反例子: sel ...

  9. 牛客练习赛60 A—F题解(缺E题)

    本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a ...

  10. 动态规划-计数dp-Distinct Subsequences II

    2020-02-06 17:01:36 问题描述: 问题求解: 非常经典的计数dp问题,思路就是统计以每个字符为结尾的个数,最后求和即可. dp[i] = sum of (dp[j]) 0 <= ...