帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  find命令使用神技,让文件查找效率翻倍

find命令使用神技,让文件查找效率翻倍

2025-12-09 16:55:01 440

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

每次磁盘报警,你是不是还在用find . -name "*.log"然后一层层du -sh?每次紧急排查,是不是还在手动翻找今天修改的文件?每次清理日志,是不是还在担心误删了重要文件?

今天分享立刻就能用的find神技,每个命令都能让你在关键时刻快人一步

 

一、神技1:按时间精准筛选

1.1 查找最近修改的文件

# 查找5分钟内修改过的文件(紧急排查时用)

find /var/log -type f -mmin -5

 

# 查找今天修改过的所有文件

find /home -type f -mtime 0

 

# 查找7天前修改的文件

find /backup -type f -mtime +7

 

时间参数解密

-mmin -55分钟内修改过(注意是分钟,不是分钟数)

-mtime +77前修改的

-mtime 0:今天(0-24小时内)

-mtime -11天内(相当于24小时内)

 

1.2 实战:清理旧日志

# 删除30天前的日志文件

find /var/log -name "*.log" -type f -mtime +30 -delete

 

# 安全版:先看看会删哪些文件

find /var/log -name "*.log" -type f -mtime +30 | wc -l

find /var/log -name "*.log" -type f -mtime +30 -ls

 

二、神技2:按大小查找

2.1 查找大文件

# 查找大于100MB的文件

find / -type f -size +100M 2>/dev/null

 

# 查找大于1GB的日志文件

find /var -name "*.log" -type f -size +1G 2>/dev/null

 

# 查找10KB到100KB之间的配置文件

find /etc -type f -size +10k -size -100k

 

大小单位速查

c:字节

kKB(1024字节)

MMB

GGB

b512字节块(默认)

 

2.2 实战:清理Docker占用的磁盘

# 查找所有超过100MB的Docker相关文件

find /var/lib/docker -type f -size +100M 2>/dev/null | head -20

 

# 按大小排序显示

find /var/lib/docker -type f -exec du -h {} + 2>/dev/null | sort -rh | head -20

 

三、神技3:权限查找

3.1 查找危险权限的文件

# 查找所有SUID文件(危险!)

find / -type f -perm /4000 2>/dev/null

 

# 查找所有可写的配置文件

find /etc -type f -perm /022 2>/dev/null

 

# 查找任何人都可写的文件

find / -type f -perm /o+w 2>/dev/null | grep -v /proc/

 

权限参数解析

-perm /4000:设置了SUID位

-perm /022:组或其他用户可写

-perm 644精确等于644权限

-perm -644包含644权限(更宽松)

 

四、神技4:内容查找

4.1 在多级目录中搜索内容

# 在Java文件中搜索"password"

find . -name "*.java" -type f -exec grep -l "password" {} \\;

 

# 不区分大小写搜索"error"

find /var/log -name "*.log" -type f -exec grep -i "error" {} +

 

# 搜索并显示行号

find . -name "*.py" -exec grep -n "import" {} +

 

注意{} + {} \\;更快,因为一次传递多个文件。

 

五、神技5:高级组合技

5.1 查找并立即处理

# 查找7天前的日志,并压缩

find /var/log -name "*.log" -type f -mtime +7 -exec gzip {} \\;

 

# 查找超过100MB的日志,并清空(保留文件)

find /var/log -name "*.log" -type f -size +100M -exec truncate -s 0 {} \\;

 

# 查找所有图片,并复制到备份目录

find . -name "*.jpg" -o -name "*.png" -type f -exec cp {} /backup/images/ \\;

 

六、一张表记住常用组合

任务

命令

备注

找今天改过的文件

find . -mtime 0

紧急排查用

找大文件

find / -size +100M

定位磁盘占用

找特定权限文件

find / -perm /4000

安全审计

找内容

find . -name "*.java" -exec grep "TODO" {} +

代码审查

批量处理

find . -name "*.log" -print0 \\| xargs -0 gzip

高效压缩

找空文件/目录

find . -empty

清理空间

 

 

七、记住这三个命令就够了

如果你记不住那么多参数,只要记住这三个组合:

# 1. 按时间找:今天改过的文件

find . -mtime 0

 

# 2. 按大小找:大文件

find . -size +100M

 

# 3. 按内容找:含关键字的文件

find . -type f -exec grep -l "关键字" {} +

 

最后的小贴士:用find前先cd到正确目录,避免搜索全盘浪费时间和I/O。

 

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

 


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

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

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

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