返回顶部
分享到

Linux find命令的高级用法和多级目录查找实战

linux 来源:互联网 作者:佚名 发布时间:2025-12-16 22:04:16 人浏览
摘要

在日常 Linux 开发和运维中,find是一个非常强大的文件搜索工具。除了简单的按文件名查找,它还能按目录、大小、时间、权限,甚至执行批量操作,非常适合多层级目录的管理。本文结合实际

在日常 Linux 开发和运维中,find 是一个非常强大的文件搜索工具。除了简单的按文件名查找,它还能按目录、大小、时间、权限,甚至执行批量操作,非常适合多层级目录的管理。本文结合实际案例,带你全面掌握 find 的高级用法。

一、find基本语法

find [起始路径] [查找条件] [操作]

  • 起始路径:要搜索的目录,如果用 . 表示当前目录。
  • 查找条件:文件名、类型、大小、修改时间等。
  • 操作:可以执行命令,例如 -exec 或 -delete。

二、按类型查找

1

2

3

4

5

6

7

8

# 查找所有目录

find /path/to/search -type d

 

# 查找所有普通文件

find /path/to/search -type f

 

# 查找符号链接

find /path/to/search -type l

三、按名称查找

1

2

3

4

5

6

7

8

# 精确匹配

find . -name "test.txt"

 

# 忽略大小写

find . -iname "test.txt"

 

# 通配符匹配

find . -name "*.log"

四、按大小和时间查找

1

2

3

4

5

6

7

8

# 大于 100MB 的文件

find . -type f -size +100M

 

# 最近 7 天修改过的文件

find . -type f -mtime -7

 

# 最近 1 小时修改的文件

find . -type f -mmin -60

五、结合逻辑操作符

1

2

3

4

5

# 查找所有 .txt 或 .log 文件

find . \( -name "*.txt" -o -name "*.log" \)

 

# 查找 .txt 文件且大小 > 1M

find . -name "*.txt" -a -size +1M

逻辑操作符:

  • -a / -and:并且(默认)
  • -o / -or:或者
  • ! / -not:非

六、执行操作

1

2

3

4

5

6

7

8

# 删除找到的临时文件

find . -name "*.tmp" -type f -delete

 

# 压缩所有 js 文件

find . -name "*.js" -type f -exec gzip {} +

 

# 使用 + 批量执行,提高效率

find . -name "*.log" -type f -exec gzip {} +

七、查找空文件或空目录

1

2

3

4

5

# 空文件

find . -type f -empty

 

# 空目录

find . -type d -empty

八、按权限或拥有者查找

1

2

3

4

5

6

7

8

# 权限为 755 的文件

find . -type f -perm 755

 

# 拥有者为 user 的文件

find . -user user

 

# 属组为 group 的文件

find . -group group

九、限制查找深度

1

2

3

4

5

# 最多查找两级目录

find . -maxdepth 2 -type f

 

# 从第三级目录开始查找

find . -mindepth 3 -type f

十、多级目录查找示例

假设你要查找路径 ./coze-studio/frontend/packages/common 下的文件或目录:

1

2

3

4

5

6

7

8

9

10

11

# 查找所有文件

find ./coze-studio/frontend/packages/common -type f

 

# 查找所有目录

find ./coze-studio/frontend/packages/common -type d

 

# 查找该路径下所有 js 文件

find ./coze-studio/frontend/packages/common -type f -name "*.js"

 

# 限制查找深度,只查当前目录

find ./coze-studio/frontend/packages/common -maxdepth 1 -type f

十一、查找指定多级路径

如果你想查找完整路径,例如:

1

coze-arch/coze-design/icons

直接用 -name 是找不到的,应该用 -path:

1

2

3

4

5

6

7

8

# 精确匹配多级路径目录

find / -type d -path "*/coze-arch/coze-design/icons"

 

# 忽略大小写匹配

find / -type d -ipath "*/coze-arch/coze-design/icons"

 

# 查找该目录下的 svg 文件

find / -type f -path "*/coze-arch/coze-design/icons/*.svg"

注意:

  • * 表示路径前缀任意层级
  • -path 匹配整个路径
  • -ipath 忽略大小写匹配

十二、高级示例汇总

1

2

3

4

5

6

7

8

# 查找大于 100MB 且最近 7 天修改的日志文件并压缩

find /var/log -type f -name "*.log" -size +100M -mtime -7 -exec gzip {} +

 

# 删除 ./coze-studio/frontend/packages/common 下所有临时文件

find ./coze-studio/frontend/packages/common -type f -name "*.tmp" -delete

 

# 查找指定多级目录并查看详细信息

find / -type d -path "*/coze-arch/coze-design/icons" -exec ls -lh {} \;

总结

  • -name:匹配单个文件或目录名
  • -path / -ipath:匹配完整路径,支持多级目录
  • -type:限制类型(文件、目录、符号链接等)
  • -size / -mtime / -mmin:按大小或修改时间筛选
  • -exec / -delete:批量操作
  • -maxdepth / -mindepth:控制递归深度
  • 逻辑操作符 -a / -o / !:复杂条件组合

通过这些组合,可以非常灵活地管理和查找 Linux 系统中的文件和目录,尤其是在多级路径和大型项目中。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Linux find命令的高级用法和多级目录查找实战
    在日常 Linux 开发和运维中,find是一个非常强大的文件搜索工具。除了简单的按文件名查找,它还能按目录、大小、时间、权限,甚至执行批
  • Ubuntu中screen安装和命令使用
    Ubuntu安装screen 1 sudo apt-get install screen screen三种状态 Detached 未连接 Attached 已连接 Dead 死亡 screen命令 1. 查看当前已有screen 1 screen -ls 2. 创建
  • Centos7 firewall和docker冲突问题及解决过程
    系统环境 系统:Centos7 防火墙工具:firewalld Docker容器:docker容器使用docker默认的网桥(bridge),进行了端口映射 问题描述 在系统防火墙f
  • Nginx之https证书配置实现介绍

    Nginx之https证书配置实现介绍
    首先我的架构是(公网 NAT 转发 Nginx 代理 IIS 服务器),实现公网 HTTPS 访问,SSL 证书必须部署在 Nginx 服务器上,且是唯一需要部署证书的节
  • Linux借助信号机制回收进程的方法
    信号机制基础 Linux信号是一种进程间通信机制,用于通知进程发生了某种事件。信号可以被内核、其他进程或进程自身发送。当进程接收到
  • Nginx日志定期清理设置实现
    1. 日志轮转配置 ① 创建 logrotate 配置文件 a. 按天自动滚动清理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo tee /etc/logrotate.d/docker-nginx EOF /path/to/your/m
  • Linux镜像文件制作方式

    Linux镜像文件制作方式
    嵌入式系统开发调试及量产需要涉及到Linux镜像文件的制作,本文结合一个实例简要介绍Linux镜像文件的制作。 1.确定磁盘空间布局 在制作镜
  • 常用的Linux测速脚本和命令
    1. 使用常用测速脚本 1.1 Speedtest CLI Speedtest.net 提供的官方命令行工具,适合测试服务器的上下行带宽和延迟。 安装 Speedtest CLI 下载并安装
  • Ubuntu安装jenkins完成自动化构建过程

    Ubuntu安装jenkins完成自动化构建过程
    Jenkins自动构建部署流程通过git拉取代码,然后用maven打包成jar包,然后通过docker完成项目部署。这里的服务器需要安装jdk(openjdk也行),
  • Linux join命令的使用及说明
    一. 基本语法 join 是 Linux 中用于按字段将两个文件进行连接的命令,功能类似 SQL 的 JOIN。 要求两个文件按 用于匹配的字段排序好,一定要
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计