find 命令高级用法:按时间、大小、权限精确查找与操作
find 是 Linux 最强大的搜索工具,掌握高级选项可极大提高效率。
1. 按时间查找
-atime:访问时间(天)-mtime:修改时间-ctime:状态改变时间-amin/-mmin/-cmin:分钟级
# 查找 7 天内修改的文件
find /data -type f -mtime -7
# 查找 30 天前修改的日志并删除
find /var/log -name "*.log" -mtime +30 -delete2. 按大小查找
-size:支持c(字节)、k、M、G
# 查找大于 100MB 的文件
find / -type f -size +100M -exec ls -lh {} \;
# 查找空文件
find /tmp -type f -size 03. 按权限查找
-perm:精确或包含权限
# 查找权限为 755 的文件
find /usr/bin -type f -perm 755
# 查找任何用户可写的文件(不安全)
find / -type f -perm -0024. 组合条件与操作
-o(或),-a(且,默认)-exec:执行命令({}替换文件,\;结束)-execdir:在文件所在目录执行,更安全
# 批量压缩所有 .txt 文件
find . -name "*.txt" -exec gzip {} \;
# 批量修改权限
find . -type d -exec chmod 755 {} \;5. 性能优化
- 使用
-maxdepth限制递归深度。 - 优先使用
-name缩小范围。 - 避免在根目录执行耗时的 find(如
find / -type f),可用locate代替。
