find 命令详解

2025-12-18 16:01:40 77

欢迎来到8455线路检测中心技术小课堂


1 基本语法和选项


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



2 按名称查找


# 基本名称查找
find /home -name "filename.txt"          # 精确匹配文件名
find . -name "*.txt"                     # 当前目录下所有txt文件
find /etc -name "*.conf"                 # /etc下所有conf文件
find ~ -name "*.pdf"                     # 家目录下所有PDF文件

# 不区分大小写
find /var -iname "*.LOG"                 # 忽略大小写
find . -iname "readme*"                  # 匹配README, readme等

# 使用通配符
find . -name "file*"                     # 以file开头的文件
find . -name "*backup*"                  # 包含backup的文件
find . -name "file?.txt"                 # file1.txt, filea.txt等
find . -name "file[0-9].txt"             # file0.txt到file9.txt
find . -name "file{old,new}.txt"         # fileold.txt或filenew.txt



3 按文件类型查找


# 文件类型选项
find . -type f           # 普通文件
find . -type d           # 目录
find . -type l           # 符号链接
find . -type b           # 块设备文件
find . -type c           # 字符设备文件
find . -type p           # 命名管道(FIFO)
find . -type s           # 套接字文件

# 实用示例
find /var -type f -name "*.log"          # 查找日志文件
find /dev -type b                        # 查找块设备
find /tmp -type s                        # 查找套接字文件
find . -type l -name "*.so"              # 查找so符号链接

屏幕截图 2025-12-18 160104.png


屏幕截图 2025-12-18 160056.png



4 按时间查找


# 按修改时间 (mtime)
find /var/log -mtime -1          # 1天内修改的文件
find . -mtime 0                  # 今天修改的文件
find . -mtime +7                 # 7天前修改的文件
find /backup -mtime +30          # 30天前修改的备份文件

# 按访问时间 (atime)
find . -atime -1                 # 1天内访问的文件
find /home -atime +90            # 90天内未访问的文件

# 按状态改变时间 (ctime)
find /etc -ctime -1              # 1天内状态改变的文件

# 按分钟查找 (更精确)
find . -mmin -60                 # 60分钟内修改的文件
find . -amin +120                # 120分钟前访问的文件
find /tmp -cmin -30              # 30分钟内状态改变的文件

# 相对时间查找
find . -newer reference.txt      # 比reference.txt新的文件
find . -older reference.txt      # 比reference.txt旧的文件
find . -anewer reference.txt     # 比reference.txt新的访问时间

屏幕截图 2025-12-18 160116.png


屏幕截图 2025-12-18 160130.png



5 按大小查找


# 基本大小查找
find . -size +10M                # 大于10MB的文件
find . -size -1G                 # 小于1GB的文件
find . -size 100k                # 等于100KB的文件
find /var -size +100M            # 查找大文件

# 大小单位
c - 字节     # find . -size +1c
k - KB       # find . -size +1k  
M - MB       # find . -size +1M
G - GB       # find . -size +1G

# 实用示例
find /home -size +100M -type f          # 查找大文件
find /var/log -size +1G -name "*.log"   # 查找大日志文件
find . -size 0                          # 查找空文件
find . -size +0 -a -size -10k           # 查找1B-10KB的文件

image.png



6 按权限和所有者查找


# 按权限查找
find . -perm 644                 # 精确匹配权限644
find /etc -perm 600              # 查找权限为600的文件
find . -perm -u=r                # 用户有读权限
find . -perm -g=w                # 组有写权限
find . -perm -o=x                # 其他用户有执行权限
find . -perm /u=rwx              # 用户有任一rwx权限

# 按所有者查找
find /home -user john            # 属于用户john的文件
find /var -group www-data        # 属于组www-data的文件
find . -uid 1000                 # UID为1000的文件
find . -gid 1001                 # GID为1001的文件
find . -nouser                   # 没有所属用户的文件
find . -nogroup                  # 没有所属组的文件



7 组合条件查找


# 与操作 (默认)
find . -name "*.txt" -type f             # 同时满足两个条件
find /var -name "*.log" -size +10M

# 或操作 (-o)
find . -name "*.txt" -o -name "*.pdf"    # 满足任一条件
find . -type f -o -type d                # 文件或目录

# 非操作 (! 或 -not)
find . ! -name "*.tmp"                   # 排除tmp文件
find . -not -name "*.bak"
find . ! -user root                      # 不属于root的文件

 


8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,8455线路检测中心期待与你一起探索。




提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图