linux使用find搜索文件命令
find
是 Linux 系统中功能非常强大的文件搜索工具,可以根据多种条件查找文件。以下是 find
命令的详细用法:
基本语法
find [路径] [选项] [表达式]
1. 按文件名搜索
find /home -name "filename.txt" # 精确匹配文件名
find /home -iname "filename.txt" # 忽略大小写
find /home -name "*.txt" # 使用通配符
2. 按文件类型搜索
find / -type f # 查找普通文件
find / -type d # 查找目录
find / -type l # 查找符号链接
3. 按文件大小搜索
find / -size +10M # 大于10MB的文件
find / -size -1G # 小于1GB的文件
find / -size 100k # 等于100KB的文件
4. 按时间搜索
find / -mtime -7 # 7天内修改过的文件
find / -mtime +30 # 30天前修改过的文件
find / -atime -1 # 1天内访问过的文件
find / -cmin -60 # 60分钟内状态改变的文件
5. 按权限搜索
find / -perm 644 # 权限精确匹配644的文件
find / -perm -u=r # 用户可读的文件
find / -perm /g=w # 组可写的文件
6. 按用户/组搜索
find / -user username # 属于某用户的文件
find / -group groupname # 属于某用户组的文件
find / -nouser # 没有所属用户的文件
7. 组合条件搜索
find /tmp -name "*.log" -size +1M # 同时满足两个条件(AND)
find / \( -name "*.txt" -o -name "*.pdf" \) # 满足任一条件(OR)
find / ! -name "*.tmp" # 排除特定文件(NOT)
8. 对搜索结果执行操作
find /var/log -name "*.log" -delete # 删除找到的文件
find . -name "*.bak" -exec rm {} \; # 删除.bak文件
find / -type f -name "*.conf" -exec cp {} /backup \; # 复制找到的文件