find工具主要用于文件、目录的查找,find命令使用语法格式如下:

find 路径  [选项]  [ "文件名"] [-exec -ok command] '{}' \;

注意:文件名可以使用通配符、正则表达式来匹配,而且,文件名一定要用""括起来,不括起来有时候能正常执行,有效时候会报错,若果使用了大括号{},大括号也要用单引号括起来,免得被shell当做特殊字符转译了。

参数如下:

-name  filename                      :搜索文件名包含filename的文件
-iname                              :按文件名查找并且忽略大小写
-type b|d|c|p|l|f                   :查找块设备、目录、字符设备、管道、软链接、普通文件
-empty                              :查找空文件或空目录
-uid n                              :搜索uid为n的文件
-size n|c                           :搜索大小为n块或c字节的文件
-perm                               :按权限查找
-atime n                            :搜索最近n天未访问的文件
-user username                      :搜索用户名为username的文件
-nouser                             :查找无有效属主的文件
-group groupname                    :按组名来查找
-nogroup                            :查找无有效组的文件
-mtime -n +n                       :按文件更改时间来查找,-n指n天以内,+n指n天以前
-atime -n +n                       :按文件访问时间来查找,-n指n天以内,+n指n天以前
-ctime -n +n                       :按文件创建时间来查找,-n指n天以内,+n指n天以前
-mmin -n +n                            :按文件更改时间来查找,-n指n分钟以内,+n指n分钟以前
-amin -n +n                            :按文件访问时间来查找,-n指n分钟以内,+n指n分钟以前
-cmin -n +n                            :按文件创建时间来查找,-n指n分钟以内,+n指n分钟以前atime,access time                 :文件被读取、执行的时间
ctime,change time                    :文件状态改变时间
mtime,modify time                    :文件内容改变时间
注意:+有以前、大于的意思,-有示以内、小于的意思

-name 根据文件名查找

[root@Centos8 shell_scripy]# find ./ -name "*.sh"         #使用通配符按文件名查找[root@Centos8 shell_scripy]# find ./ -iname "test.txt"       #根据文件名查找,不区分文件名大小写[root@Centos8 shell_scripy]# find ./ -type d -name "test"   #查找当前目录下的目录名为test的目录[root@Centos8 shell_scripy]# find ./ -name "[A-Z]*"          #查找当前目录下大写字母开头的文件[root@Centos8 shell_scripy]#  find ./ -name "*.??"          #查找文件结尾是点号加两个字符的文件

-type 根据文件类型查找

[root@Centos8 shell_scripy]# find ./ -type l                            #查找当前目录下的软链接文件[root@Centos8 shell_scripy]# find ./ -type d                         #查找当前目录下的目录,含自身目录[root@Centos8 shell_scripy]# find ./ ! -type d                         #查找当前目录下的非目录文件[root@Centos8 shell_scripy]# find ./ -type d | xargs chmod 755       #查找当前目录下的所有目录并修权限[root@Centos8 shell_scripy]# find ./ -type  f | xargs chmod 744           #查找当前目录下的所有普通文件并修权限

-user 、-group根据属主属组查找文件

[root@Centos8 find]# find ./ -user mysql                            #查找属主是mysql的文件[root@Centos8 find]# find ./ -group mysql                            #查找属组是mysql的文件

-size 根据文件大小查找

[root@Centos8 shell_scripy]# find ~ -size +10M                     #查找家目录下大于10M的文件[root@Centos8 shell_scripy]# find ~ -size 10M                       #查找家目录下大小等于10M的文件[root@Centos8 shell_scripy]# find ~ -size -10M                        #查找家目录下小于10M的文件[root@Centos8 shell_scripy]# find ~ -size +50 -size -100M          #查找家目录下大于50M小于100M的文件

-perm 根据文件权限查找

-perm mode 参数mode 有较多中写法,可以是数字777这种的写法,也可以是字母的写法[root@Centos8 shell_scripy]# find ./ -perm 744                        #查找当前目录下权限为744的文件及目录[root@Centos8 ~]# find ./ -type f ! -perm 777                      #查找当前目录下没有777权限的普通文件[root@Centos8 ~]# find ./  -perm 2755                              #查找当前目录下具有特殊权限2755的文件或目录[root@Centos8 ~]# find . -perm /u=w,g=w                              #查找属主和属组用户都有写入权限的文件

-mtime、-atime、-mmin、-amin 按日期、时间查找

[root@Centos8 ~]# find / -type f -mtime +30                            #查找30天前修改的所有普通文件[root@Centos8 ~]# find / -type f -mtime +10 -mtime    -20             #查找最后10-20天修改的所有普通文件[root@Centos8 shell_scripy]# find / -mtime +30 -name "*.log"        #查找30天以前的修改过log文件[root@Centos8 shell_scripy]# find / -mtime -30 -name "*.log"        #查找30天以前修改过的log文件[root@Centos8 shell_scripy]# find / -mtime 30 -name "*.log"         #查找第30天修改过的log文件[root@Centos8 ~]# find ./ -mmin -60                                    #查找最近1小时内修改过的文件[root@Centos8 shell_scripy]# find / -mmin +30 -name "*.log"          #查找30分钟以前修改的log文件[root@Centos8 shell_scripy]# find / -amin +30 -name "*.log"            #查找30分钟以前被访问的log文件[root@Centos8 shell_scripy]# find / -cmin +30 -name "*.log"           #查找第30分钟改变的log文件

先查找再执行命令

find / -mtime -30 -type f -size +10k -name "*.log" -exec mv {} /root/shell_scripy/find/test/ \;
find / -mtime -30 -type f -size +10k -name "*.log" -exec ls -l {}  \;
find / -mtime -30 -type f -size +500M -name "*.log" -exec rm -rf  {}  \;

注意:{}是必须的,最后的斜杠和冒号也是必须的,同时{}与路径要用空格,路径与斜杠也必须有空格。

shell编程四剑客之 find相关推荐

  1. shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)

    一,Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合. ...

  2. Shell编程四剑客之AWK(基础篇)

    Shell 编程四剑客之 AWK 概述 其语法参数格式为,AWK 常用参数.变量.函数详解如下: (1) AWK 基本语法参数详解: (2) AWK 内置变量详解: (3) AWK 内置函数详解: ( ...

  3. shell编程四剑客之awk

    1.awk简介 awk是一个优良的文本处理工具,Linux及UNIX环境中现有的功能最强大的数据处理引擎之一,以Aho.Weinberger.Kernighan三位发明者名字首字母命名为awk,awk ...

  4. 四、shell编程四剑客

    sed的使用 使用vim在打开的文件中替换内容 :%s/168/134/g #把文件中的所有168替换为134 在文件外部替换文件中的内容 sed -i 's/192.168/192.134/g' l ...

  5. Linux的shell编程(四)

    六.bash程序的调试 在编程过程中难免会出错,有的时候,调试程序比编写程序花费的时间还要多,shell程序同样如此. shell程序的调试主要是利用bash命令解释程序的选择项.调用bash的形式是 ...

  6. SHELL编程之三剑客

    操作系统三剑客命令 基础知识 正则符号 基础正则符号: ^ 以什么开头的信息进行匹配----- ^oldboy $ 以什么结尾的信息进行匹配----- oldboy​$ ^$ 表示匹配空行信息 . 匹 ...

  7. shell脚本四剑客--sed的应用

    sed的介绍 sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增.删.改.查等操作,支持按行.按字段.按正则匹配文本内容,灵活方便,特别适合于大文件的编辑 sed在处理文本时 ...

  8. 史上最高效Shell四剑客实操案例

    01.Shell编程四剑客之Find 通过如上基础语法的学习,读者对Shell编程有了更近一步的理解,Shell编程不再是简单命令的堆积,而是演变成了各种特殊的语句.各种语法.编程工具.各种命令的集合 ...

  9. SHELL编程(介绍)

    前言 说到shell编程,很多从事Linux运维工作的朋友都不陌生,都对shell有基本的了解,读者可能刚开始接触shell的时候,有各种想法,感觉编程非常困难,但shell编程是所有编程语言中最容易 ...

  10. linux实验三shell程序设计,实验三 LINUX SHELL编程

    精选文库 -实验三LINUX SHELL 编程 四.实验内容 本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术.内容如下: 1.创建以下菜单程序: USER ...

最新文章

  1. OS X终端颜色[关闭]
  2. 分库、分表、分区的区别,傻傻分不清?
  3. 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas
  4. java 模块化osgi_OSGi简介–模块化Java
  5. pandas处理日期的几种常用方法
  6. 清华大学朱旭峰:中国智库大数据报告2017预发布
  7. vm 虚拟机 删除 权限_虚拟机win7一键傻瓜式安装
  8. hdu 2896 AC自动机
  9. git 合并指定目录到master
  10. C# action 返回值_C#与ABB机械手建立通信,并控制机械手动作 - 龙拓电子
  11. java string 截取中文乱码_Java如何处理中文乱码问题
  12. 线性回归 python_python中的线性回归
  13. ps照片人脸合成教程-----------------------------------
  14. 我的所有的浏览器被hao123 挟持了,终极解决方案
  15. 最近的错误整理(LMY)
  16. 信息网络传播视听节目服务单位的设立与经营
  17. Android 从应用程序跳到系统应用管理和应用的权限管理页面
  18. Kutools for Excel 结合 300 多种高级功能和工具
  19. 钰泰ETA2821,42V/1.5A降压转换器,集成OVP功能防浪涌
  20. php获得客户端ip地址范例

热门文章

  1. matlab 加随机数,随机数加上100:Matlab
  2. F - Restoring the Expression CodeForces - 898F
  3. Leetcode. 回文字符串的分割和最少分割数
  4. xtrabackup备份原理
  5. 实现文字跟随鼠标移动--[转]
  6. 3.使用SqlCommand执行SQL语句
  7. 编程人员应该忙里偷闲
  8. springmvc原理、springmvc流程
  9. ParNew垃圾回收器总结
  10. Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用