作为Linux系统管理员,find命令是我每天使用最频繁的工具之一。掌握它,你就能像侦探一样精准定位系统中的任何文件。今天,我将分享15个最高频的应用场景,每个都配有实战案例。
问题:快速定位名为“nginx.conf”的配置文件
find /etc -name "nginx.conf"问题:不确定文件大小写时查找日志
find /var/log -iname "*.log"问题:查找当前目录下所有目录
find . -type d技巧:f普通文件,l符号链接,d目录
问题:清理超过100MB的大文件
find /home -size +100M记忆法:+表明大于,-表明小于,不加符号表明准确等于
问题:查找7天内修改过的文件
find /var/www -mtime -7扩展:-mtime +30 查找30天前修改的文件
问题:查找PHP文件且7天内被修改过
find . -name "*.php" -mtime -7问题:安全删除所有.tmp文件
find /tmp -name "*.tmp" -delete警告:先运行不加-delete的版本确认结果!
问题:清理空目录
find . -type d -empty问题:查找777权限的文件(安全隐患!)
find /home -type f -perm 0777问题:批量修改文件权限
find ./scripts -name "*.sh" -exec chmod +x {} ;解析:{}代表找到的文件,;表明命令结束
问题:查看用户alice的所有文件
find / -user alice 2>/dev/null问题:仅搜索当前目录,不进入子目录
find . -maxdepth 1 -name "*.conf"问题:查找文件时跳过node_modules
find . -type f -name "*.js" -not -path "./node_modules/*"问题:在所有配置文件中搜索“192.168.1.1”
find /etc -type f -name "*.conf" -exec grep -l "192.168.1.1" {} ;问题:找出24小时内最新的5个日志文件
find /var/log -name "*.log" -mtime -1 | head -5实战案例:清理30天前且大于50MB的日志文件
find /var/log -name "*.log" -mtime +30 -size +50M -exec echo "删除: {}" ;先运行看输出,确认无误后去掉echo直接执行
黄金法则:不确定时先用-ls或-print预览结果,再执行危险操作。find配合xargs能处理大量文件,但要注意特殊字符问题。
掌握这15个场景,你已经超越了90%的Linux用户。记住:能力越大,责任越大——操作生产环境文件时,务必谨慎!