一.命令简介
在使用Linux时,需要经常查阅文件内容,这时候,如何方便快捷的查找文件位置就成了我们必须要学的重要内容。以下为Linux中我们主要使用的查找命令进行了总结:
1.find
语法格式:find 路径 条件 文件名
功能:根据给定的路径和条件查找相关文件或目录
特点:其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。
2.grep
语法格式:grep 参数 文件名
功能:过滤想要的内容并将结果输出。通常会将grep命令与正则表达式搭配使用。
特点:从大量繁杂的内容中过滤关键信息,与正则表达式使用可实现各种复杂的操作。
3.which
语法格式:which 参数 文件名
功能:查找命令文件,能够快速搜索二进制程序所对应的位置。
特点:不适用于查找同名文件(find与locate),也不适用于源代码和帮助文件(whereis),仅仅是查找命令本身所在的路径。
4.whereis
语法格式:whereis 参数 命令名
功能:显示命令及相关文件的路径位置信息,可用于找到命令(二进制程序)、命令源代码、man帮助手册等相关文件的路径位置信息。
特点:有别于find命令进行的全盘搜索,whereis命令的查找速度非常快,因为它不是在磁盘中乱找,而是在指定数据库中查询,该数据库是Linux系统自动创建的,包含本地所有文件的信息,每天自动更新一次。但也正因为这样,whereis命令的搜索结果会不及时,比如刚添加的文件可能搜不到,原因就是该数据库文件还没有更新,手动执行updatedb命令进行更新。
5.locate
语法格式:locate 参数 文件名
功能:快速查找文件或目录。
特点:与find命令进行全局搜索不同,locate命令是基于数据文件(/var/lib/locatedb)进行的定点查找,由于缩小了搜索范围,因此速度快很多。 要想让locate命令查询的结果更加准确,建议定期执行updatedb命令对数据库文件进行更新。
二.详细参数
find:
-name 匹配文件名
-nouser 匹配无所属主的文件
-perm 匹配文件权限
-nogroup 匹配无所属组的文件
-user 匹配文件所属主
-newer 匹配比指定文件更新的文件
-group 匹配文件所属组
-type 匹配文件类型
-mtime 匹配最后修改文件内容时间
-size 匹配文件大小
-atime 匹配最后读取文件内容时间
-prune 不搜索指定目录
-ctime 匹配最后修改文件属性时间
-exec…… {}\; 进一步处理搜索结果
grep:
-b 显示匹配行距文件头部的偏移量
-o 显示匹配词距文件头部的偏移量
-c 只显示匹配的行数
-q 静默执行模式
-E 支持扩展正则表达式
-r 递归搜索模式
-F 匹配固定字符串的内容
-s 不显示没有匹配文本的错误信息
-h 搜索多文件时不显示文件名
-v 显示不包含匹配文本的所有行
-i 忽略关键词大小写
-w 精准匹配整词
-l 只显示符合匹配条件的文件名
-x 精准匹配整行
-n 显示所有匹配行及其行号
which:
-a 显示PATH变量中所有匹配的可执行文件
--help 显示帮助信息
-n 设置文件名长度(不含路径)
--read-functions 从标准输入中读取shell函数定义
-p 设置文件名长度(含路径)
--show-tilde 使用波浪线代替路径中的家目录
-V 显示版本信息
--skip-dot 跳过PATH变量中以点号开头的目录
-w 设置输出时栏位的宽度
whereis:
-b 查找二进制程序或命令文件
-s 仅查找源代码文件
-m 查找man帮助手册文件
-u 查找可执行文件、源代码及帮助文档
locate:
-b 仅匹配文件名
-r 使用正则表达式
-c 不输出文件名
-S 显示数据库的统计信息
-d 设置数据库所在目录
-w 匹配完整的文件路径
-i 忽略大小写
--help 显示帮助信息
-l 限制最大查找数量
--version 显示版本信息 -q 静默执行模式