linux find命令小结之常用选项

find命令格式

man文件中给出的find命令格式为:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

不过这几个选项[-H] [-L] [-P] [-D debugopts] [-Olevel]很少用到,再次总结的是简化命令:

find [path...] [expression]

  • path:查找的文件路径,默认为当前目录,/表示根目录,.表示当前目录,..表示上级目
  • expression:表达式可以分为-options[-print -exec -ok]
  1. -options,find命令的常用选项(本文重点说明)
  2. -print,将find命令匹配的文件输出到标准输出
  3. -exec,对find命令匹配的文件执行该参数给出的shell命令,相应命令的形式为'command' {  } \(注意\前有个空格)
  4. -ok,功能和-exec相同,不过在执行每个命令之前需要用户确认

-options常用选项列表和意义

  • -name <表达式> 根据文件名查找文件
  • -iname <表达式> 根据文件名查找文件,忽略大小写
  • -path <表达式> 根据路径查找文件
  • -ipath <表达式> 根据路径查找文件,忽略大小写
  • -amin <分钟> 过去N分钟内访问过的文件
  • -atime <天数> 过去N天内访问过的文件
  • -cmin <分钟> 过去N分钟内修改过的文件
  • -ctime <天数> 过去N天内修改过的文件
  • -mmin<分钟>过去N分钟曾被更改过的文件或目录
  • -mtime<天数>过去N天曾被更改过的文件或目录
  • -anewer <参照文件> 比参照文件更晚被读取过的文件
  • -cnewer <参照文件> 比参照文件更晚被修改过的文件  同--newer
  • -size <大小> 根据文件大小查找文件,单位b c w k M G
  • -type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
  • -user <用户名> 按归属用户查找文件
  • -uid <uid> 按UID查找文件
  • -group <群组名> 按归属群组查找文件
  • -gid <gid> 按GID查找文件
  • -empty 查找空文件
  • -depth:从指定目录下最深层的子目录开始查找
  • -maxdepth<目录层级>设置最大目录层级
  • -mindepth<目录层级>设置最小目录层
  • -regex<正则表达式>
  • -o  或关系
  • -a 与关系
  • !否定关系

参数使用举例

  • 在/var目录下以.txt结尾的文件名
find /  var -name  "*.txt"
find /  var -iname  "*.txt"      //忽略大小写
  • 当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . -name "*.txt" -o -name "*.pdf" 
  • 匹配文件路径或者文件
find  /media/ -path "*debug/log"    //所以以debug结尾目录下的log文件或者log目录下的所有文件
  • 找出/home下不是以.txt结尾的文件
find /home ! -name "*.txt"
  • 找出距离当前路径1-2层之间所有的普通文件
find .  -mindepth 1  -maxdepth 2 -type f
  • 当前目录下搜索出权限为777的文件
find . -type f -perm 777
  • 找出当前目录下权限不是644的php文件
find . -type f -name "*.php" ! -perm 644
  • 找出当前目录用户tom拥有的所有文件
find . -type f -user tom
  • 找出当前目录用户组sunk拥有的所有文件
find . -type f -group sunk
  • 要列出所有长度为零的文件
find . -empty
根据文件时间戳进行搜索
UNIX/Linux文件系统每个文件都有三种时间戳:
  1. 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间
  2. 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
  3. 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间
  • 搜索最近七天内被访问过的所有文件
find /home -atime -7
  • 搜索最近七天前被访问过的所有文件
find /home -atime 7
  • 找出比file.log修改时间更长的所有文件(日期更靠近现在)
find . -type f -newer file.log

根据文件大小进行匹配

文件大小单元:b--块(512字节) c -- 字节  w -- 字(2字节)  k -- 千字节  M -- 兆字节   G--吉字节
  • 搜索大于10KB的文件
find . -type f -size +10k
  • 搜索小于10KB的文件
find . -type f -size -10k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值