加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

详解Linux系统find命令常见用法和高级用法-exec参数

发布时间:2023-02-07 13:45:09 所属栏目:Linux 来源:
导读:  概述

  find命令是linux下一个强大的查找命令。与locate命令相比,它需要遍历磁盘文件,因此查找速度较慢,但正因如此,它的实时性比locate好得多。另外一方面,find命令的查找条件比locate丰富得多。下面
  概述
 
  find命令是linux下一个强大的查找命令。与locate命令相比,它需要遍历磁盘文件,因此查找速度较慢,但正因如此,它的实时性比locate好得多。另外一方面,find命令的查找条件比locate丰富得多。下面介绍一下find命令的常用用法及一些高级用法。
 
  1、以名称为条件
 
  find / -name 'prometheus'

  2、以权限为条件
 
  有时候需要查找特定权限的文件,可以使用-perm参数,例如查找当前目录下权限为755的文件:
 
  find . -perm 755
 
  3、以文件类型为条件
 
  涉及参数-type,例如要查找当前目录下的符号链接文件:
 
  find /opt -type d

  注意:
 
  f 普通文件
  d 目录
  b 块设备文件
  c 字符设备文件
  l 符号链接
  s 套接字
  p 管道文件
  4、以时间为条件
 
  涉及参数-mtime,-atime,-ctime,-newer,-anewer,-cnewer,-amin,-cmin等
 
  find ./ -mtime 3 #查找3天前更改过的文件
  find ./ -mtime -3 #查找3天内更改过的文件
  find ./ -mtime 0 #查找今天更改过的文件
  find ./ -newer sort.txt #查找比sort.txt修改时间更新的文件
  find ./ -anewer sort.txt #查找比sort.txt访问时间更新的文件
  find ./ -amin 5 #查找5分钟之前访问过的文件
  注意:
 
  atime 最后访问时间
  mtime 最后修改时间
  ctime 最后修改时间,这里包括属性和权限

  5、exec参数
 
  -exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
 
  {} 花括号代表前面find查找出来的文件名。
 
  使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令linux命令系统,会发现该命令只输出从当前路径起的相对路径及文件名。
 
  5.1、把ls 放到exec中
 
  find /var/lib/mysql -name 'log*' -o -name '*bin*' -exec ls -al {} \;

  5.2、查找更改为5天前的文件并删除
 
  find /logs -type f -mtime +5 -exec rm {} \ ;

  5.3、提示删除
 
  find命令在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
 
  find . -name "*.log" -mtime +5 -ok rm {} \ ;
  按[y]键删除文件,按[n]键不删除

  后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!
 
 
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!