- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
欢迎来到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 -5:5分钟内修改过(注意是分钟,不是分钟数)
-mtime +7:7天前修改的
-mtime 0:今天(0-24小时内)
-mtime -1:1天内(相当于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:字节
k:KB(1024字节)
M:MB
G:GB
b:512字节块(默认)
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线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP