linux下的枯燥命令-find

引言:想查哪就查哪,蒙多

作用

根据条件查找某个路径下符合规则的文件、文件夹信息

基础格式

基础语法格式:

find [路径] [选项] [操作]

常用选项

选项 含义
-name 根据文件名查找
-perm 根据文件权限查找
-prune 该选项可以排除某些查找目录
-user 根据文件属主查找
-group 根据文件属组查找
-mtime -n | +n 根据文件更改时间查找
-nogroiup 查找无有效属组的文件
-nouser 查找无有效属主的文件
-newer file1 !file2 查找更改时间比file1新但是比file2旧的文件
-type 按照文件类型查找
-size -n | +n 按文件大小查找
-mindepth n 从n级子目录开始搜索
-maxdepth n 最多搜索到n级子目录

场景实操

注:以下场景均以 /tmp 文件夹为示例,实际使用过程中,请替换成要搜索的路径

根据文件名查找文件(常用)

# 查找 /tmp 目录下以abc开头的文件
find /tmp -name 'abc*' 

# 查找 /tmp 目录下所有的json文件
find /tmp -name '*.json'

# 当不填写路径时,默认当前路径,等同于 find .
find -name 'abc*'

# 使用 -iname忽略大小写匹配
find /tmp -iname 'abc*'

根据文件归属查找文件

# 查找/tmp目录下,属主为root的文件
find /tmp -user root

# 查找/tmp目录下,属组为root的文件
find /tmp -group root

根据文件类型查找文件

-type 可用值有如下选项:

  • f 文件
  • d 目录
  • c 字符设备文件
  • b 块设备文件
  • l 链接文件
  • p 管道文件
# 查找/tmp目录下,名字中带有abc的文件
find /tmp -name '*abc*' -type f

# 查找/tmp目录下,名字中带有abc的文件夹
find /tmp -name '*abc*' -type d

根据文件大小查找文件

-size 可用值有如下选项:

  • +n 大小大于n的文件
  • -n 大小小于n的文件
  • n大小等于n的文件(部分发行版匹配不到,不推荐使用)
# 查找/tmp目录下小于200字节的文件
find /tmp -size -200c

# 查找/tmp目录下大于1M的文件
find /tmp -size +1M

可选的单位选项:

  • b 块,1b=512字节
  • c 字节 1c=1字节
  • w 2字节 1w=2字节
  • k 千字节 1k=1024字节
  • M 兆字节 1M=1024*1024字节
  • G 1G=102410241024 字节

根据修改时间查找文件

-mtime 可用值有如下选项:

  • -n n天以内修改的文件
  • +n n天以外修改的文件
  • n 正好n填修改的文件

-mmin 可用值有如下选项:

  • -n n分钟以内修改的文件
  • +n n分钟以外修改的文件
# 查找/tmp目录下30天之前修改名称包含abc的文件
find /tmp -name '*abc*' -mtime +30 -type f

# 查找/tmp目录下3分钟内修改的文件 
find /tmp -mmin -3 -type f

过滤查找目录层级

# 从/tmp的第2级子目录开始搜索,名称中包含abc的文件
find /tmp -mindepth 2 -name '*abc*'

# 搜索/tmp中名称中包含abc的文件,最多搜索到3级目录
find /tmp -maxdepth 3 -name '*abc*'

目录层级过滤条件要放到最前面,这样匹配之前就过滤掉了不需要匹配的目录,效率最高

你可能感兴趣的:(linux下的枯燥命令-find)