在Linux云服务器的日常使用中,查找文件、命令或者目录是高频操作,不同的查找场景对应不同的命令,掌握这些命令的用法能显著提升操作效率。本文会详细介绍常用的查找命令及其使用方法。

find命令:最强大的文件查找工具
find命令是Linux系统中功能最全面的查找命令,支持按照文件名、文件大小、修改时间、文件权限等多种条件查找,并且可以对查找到的结果执行后续操作。
基本语法
find命令的基本格式为:
find [查找路径] [查找条件] [后续操作]
常用参数及示例
- 按文件名查找:使用
-name参数,支持通配符匹配,示例查找当前目录下所有后缀为.txt的文件:
find . -name "*.txt"
- 按文件大小查找:使用
-size参数,单位可以是k(千字节)、M(兆字节)、G(吉字节),示例查找当前目录下大于10M的文件:
find . -size +10M
- 按修改时间查找:使用
-mtime参数,单位为天,正数表示n天前修改,负数表示n天内修改,示例查找7天内修改过的文件:
find . -mtime -7
- 后续操作:使用
-exec参数对查找到的文件执行命令,示例删除当前目录下所有后缀为.log的过期文件:
find . -name "*.log" -mtime +30 -exec rm -f {} ;
locate命令:快速的文件查找工具
locate命令基于系统预建的文件索引数据库查找文件,速度比find快很多,但是索引数据库默认每天更新一次,新创建的文件可能无法立即查找到。
基本用法
直接输入locate加文件名即可查找,示例查找系统中所有包含nginx的文件:
locate nginx
更新索引数据库
如果需要查找刚创建的文件,可以先手动更新索引数据库,命令如下:
sudo updatedb
which命令:查找命令的可执行文件路径
which命令专门用于查找系统PATH环境变量下的命令可执行文件位置,通常用来确认某个命令是否安装以及其具体路径。
示例查找ls命令的路径:
which ls
输出结果一般为/usr/bin/ls,如果命令不存在则会提示未找到。
whereis命令:查找命令相关文件
whereis命令不仅可以查找命令的可执行文件,还能查找对应的源代码文件和帮助文档,查找范围比which更广。
示例查找nginx相关的所有文件:
whereis nginx
输出结果会包含nginx的可执行文件路径、配置文件路径、帮助文档路径等信息。
不同查找命令的适用场景对比
为了更清晰地选择使用哪个查找命令,以下是各命令的适用场景对比:
| 命令 | 适用场景 | 查找速度 |
|---|---|---|
| find | 需要按复杂条件查找文件、需要对查找结果执行操作 | 较慢 |
| locate | 快速查找已知名称的文件,不需要复杂条件 | 很快 |
| which | 确认系统命令是否存在、查找命令可执行路径 | 快 |
| whereis | 查找命令相关的可执行文件、源码、帮助文档 | 快 |
使用注意事项
- find命令查找范围较大时可能会消耗较多系统资源,建议尽量缩小查找路径,比如指定具体目录而不是从根目录开始查找。
- 使用find的
-exec参数执行删除等危险操作时,建议先去掉-exec部分查看查找到的文件列表,确认无误后再执行删除操作。 - locate命令的索引数据库更新需要root权限,普通用户执行
updatedb会提示权限不足。