Linux下的查找命令合集(which/whereis/locate/find)

article/2025/7/22 10:03:10

Linux 下的查找命令有很多,常用的有whichwhereislocatefind。那么这4个命令之间各自有什么特点,又有什么区别,什么时候该用哪个才最合适呢?方便我们在开发和学习中能更加有效的使用。

1、which

该命令主要是用来查找系统PATH目录下的可执行文件。其实就是查找那些已经安装好的可以直接执行的命令。

例如:

$ which gcc

在这里插入图片描述

  • 功能作用:从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径。
  • 执行原理:在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件名,不加-a选项时返回第一个匹配的可执行文件的路径,否则依次返回满足条件的所有可执行文件的路径名。
  • 适用场合:一般用于查找命令/可执行文件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。

2、whereis

该命令可以用来查找二进制文件、源代码文件、帮助命令(man)文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广。

例如:

$ whereis gcc

在这里插入图片描述

  • 功能作用:定位/返回与指定名字匹配的二进制文件、源代码文件和帮助手册文件所在的路径。
  • 执行原理:首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进制文件、源文件和帮助手册文件。为了确保所搜寻的路径信息是最新的版本,使用之前可以使用updatedb命令手动更新数据库。
  • 适用场合:二进制文件、源文件和帮助手册文件路径的查找。

3、locate

该命令也是通过数据库查找文件,但是这个命令的适用范围就比whereis大多了。这个命令可以找到任意你指定要找的文件,并且可以只输入部分文件名(前面两个命令是要输入完整文件名的)。同时locte还可以通过-r选项使用正则表达式,功能十分强大。

例如:

$ locate examples.desktop

在这里插入图片描述

  • 功能作用:同whereis指令一样,也是从数据库建立的索引中查找,不同的是该命令查找所有部分匹配的文件。使用之前可以使用updatedb命令手动更新数据库。
  • 执行原理:默认情况下(当filename中不包含通配符*时),locate会给出所有与*filename*相匹配的文件的路径。
  • 适用场合:无法执行文件类型性质的模糊查找(你只记得某个文件的部分名称)。

4、find

find命令要比前边几条复杂的多,功能也强大的多。这条命令是通过直接搜索硬盘的方式查找的,所以可以保证查找的信息绝对可靠。并且支持各种查找条件。但是功能强大肯定是有代价的,那就是搜索速度慢。所以一般前边几种找不出来的情况下才会使用find。另外如果要实现某些特殊条件的查找,比如找出某个用户的size最大的文件,那就只能用find了。

参数列表:

  • 时间查找参数:
– atime n:将n*24小时内access过的文件列出来;
– ctime n:将n*24小时内状态发生改变的文件列出来;
– mtime n:将n*24小时内被修改过的文件列出来;
– newer file:把比file还要新的文件列出来;
  • 名称查找参数:
–gid n:寻找群组ID为n的文件;
–group name:寻找群组名称为name的文件;
–uid n:寻找拥有者ID为n的文件;
–user name:寻找拥有者名称为name的文件;
–name file:寻找文件名为file的文件(可以使用通配符);

例如:

sudo find /usr -name osgearth

在这里插入图片描述

  • 功能作用:从当前目录递归搜索文件。
  • 执行原理:遍历当前工作目录及其子目录,非常消耗硬盘资源,查找效率低。
  • 适用场合:能用which、whereis和locate的时候尽量不要用find。

5、总结

对比选项whichwhereislocatefind
搜索目标可执行文件二进制文件、源文件、帮助文件所有类型所有类型
查找路径PATH所含目录索引数据库所含目录索引数据库所含目录当前目录/指定目录
搜索原理完全匹配去除.之后的完全匹配部分匹配即可遍历寻找
查找速度非常快比较快比较快比较慢

补充:type命令

type命令主要用于区分一个命令到底是shell自带的还是外部独立的二进制文件提供的。如果是shell自带的则会提示此命令为shell buildin,否则会列出命令的位置。

例如:

  • cd为shell自带的命令,用type cd则显示cd为shell buildin命令。
  • ssh不是shell自带命令,用type时会显示ssh的路径。

在这里插入图片描述
顺便把前面的命令都 type 一下:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/SrfYhf7g.shtml

相关文章

【Linux命令】查找文件命令

文章目录 一、查找文件locateupdatedbfind测试条件操作符操作预定义操作自定义操作 find命令选项(常用) 一、查找文件 locate locate命令会查找其路径名数据库,输出所有包含查找字符串的匹配项: locate settings.xmlupdatedb …

Linux常用查找命令

1、命令名称:which(查看命令文件位置和命令可能出现的别名) which 命令 2、whereis(查找命令及帮助文档所在位置) whereis 命令 3、locate(按照文件名查找,按照数据库查找) locate…

【Linux学习笔记】8. Linux查找命令:find和grep详解

Linux查找命令 find查找文件grep查找字符串 1. find命令 有多种使用方式: 根据文件名搜索根据文件大小搜索根据文件类型搜索根据修改时间搜索根据文件权限搜索根据文件所有者搜索 上面的各种方式可以利用逻辑与或非组合起来使用。 功能一:按文件名…

linux查找命令,文件就这些which,whereis,locate,find,grep,|

linux生产中我们经常需要查看某个软件是否安装,某个文件在哪里等,某个命令是否存在等。 1. which 查看可执行文件的位置 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果…

linux 查找命令

CentOS Linux学习笔记总结(八十六)-CentOS Linux系统的查找命令find find命令是用于在指定目录下查找文件,并可以对查找到的文件进行指定的操作。它的查找是从指定目录开始,并向下递归搜索它的所有各个子目录,查到后标准输出,并对其进行指定操作。 find语法: find [参…

Linux下4个查找命令which、whereis、locate、find

1.which 作用:从环境变量PATH中,定位、返回与指定名字相匹配的可执行文件所在的路径 原理:执行which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件 适用场合:一般用于查找命令、可执行文件所在的路径 2.whereis 作用:定位、返回与指定名字…

Linux 查找命令(find、locate 、grep )

学习Linux系统的第五篇博客:学习如何查询文件。 一、find 命令 作用: 在指定范围内迅速查找到文件。 用法: find 路径 参数 文件名 例如: 查找自己账户下文件名为test.txt的文件 命令:find /home/ygt -name test.tx…

景区门票管理系统

1、项目介绍 景区门票管理系统拥有两种角色 管理员:景点管理、留言管理、用户管理、订单管理等 用户:留言、门票购买、修改个人信息等 2、项目技术 后端框架: Servlet、mvc模式 前端技术:Bootstrap、jsp、css、JavaScript、…

景点景区门票购买核销宴会活动报名公众号系统开发

景点景区门票购买核销宴会活动报名公众号系统开发 功能特性 1.活动管理 可以新建一场或多场活动,管理每一场活动;与此同时,可以添加多张收费或免费门票,满足特定的需求;填写举办城市后,客户可通过定位服务&…

条件判断练习:门票价格【Python练习】

if-else语句 在 Python 中,if-else语句用于控制程序执行,基本形式为: if 判断语句1: step1 else:step2当判断语句1为真时,执行step1,否则执行step2。例如: name choose #判断变量name是否…

旅游景区怎么在抖音上卖门票?

抖音日活超8亿,流量巨大,而且是国内最大的短视频平台。 而景区拥有优美自然旅游资源,可以源源不断产出优质视频,非常适合短视频宣传,抖音如今堪称景区必做的营销渠道。 景区也想要在抖音上售卖门票,减少客户…

Java 一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出说明:11岁到59岁的门票是20,10岁及以下免票,60岁以上10元。

先创建一个类,储存信息。 package sqy; import java.util.Scanner; public class Passager {String name;int age;public void piaojia() {do {Scanner in new Scanner(System.in);System.out.print("请输入姓名(输入n,退出程序): &qu…

送点门票给大家

阅读文本大概需要 2.6 分钟。 先说一句,昨天的文章又被和谐了,搞不懂,其实我感觉也没说啥敏感的吧,说的都是大实话,哎,这年头,实话都不敢随便说了,大号连续被和谐,再乱说…

多平台购买门票,退款中的被消费,导致损失两张门票的屎蛋经历(追回钱的过程深刻展示了中国式踢皮球)

一、事由: 美团买了瓦屋山门票,购买后发现支付宝的更便宜,就退了美团的(退款周期4天),结果第二天把退款中的消费了…………what fck,,,作为程序猿,这屎蛋逻辑…

【论文阅读】LOAM: Lidar Odometry and Mapping in Real-time

一、概述 Loam主要是一种激光匹配slam的方法,也就是一种定位与建图的方法,相比于其他的制图方法,loam主要解决的是雷达快速移动的过程中的畸变问题,如果雷达的扫描速度和雷达的移动速度相差太大,会导致扫描过程中偏差…

使用EKF融合odometry及imu数据

整理资料发现早前学习robot_pose_ekf的笔记,大抵是一些原理基础的东西加一些自己的理解,可能有不太正确的地方。当时做工程遇到的情况为机器人在一些如光滑的地面上打滑的情形,期望使用EKF利用imu对odom数据进行校正。就结果来看,…

【论文阅读】LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 文章摘要I. 简介II. 硬件系统III. 轻量级激光雷达里程计和建图A. 系统概况B. 分割C. 特征提取D. 激光里程计E. 激光建图 IV. 实验V. 总结与讨论 本文主要是对LeGO-LOAM论文的一些…

ros移动机器人,激光雷达里程计rf2o_laser_odometry的使用与分析

目录 1.问题分析 2.激光雷达里程计 2.1 代码下载 2.2 使用方法 (1) ERRO:“base_link” passed to lookupTransform argument source_frame does not exist. (2)"Waiting for laser_scans...." (3)无法发布odom->base_footprint的tf信息 2.3 导…

Super odometry:以IMU为核心的激光雷达视觉惯性融合框架(ICRA2021)

Super Odometry: IMU-centric LiDAR-Visual-Inertial Estimator for Challenging Environments 作者:Shibo Zhao,Hengrui Zhang, Peng Wang, Lucas Nogueira,Sebastian Scherer 论文地址:https://arxiv.org/pdf/2104.14938.pdf 视…

svo: semi-direct visual odometry 论文解析

SVO 从名字来看,是半直接视觉里程计,所谓半直接是指通过对图像中的特征点图像块进行直接匹配来获取相机位姿,而不像直接匹配法那样对整个图像使用直接匹配。整幅图像的直接匹配法常见于RGBD传感器,因为RGBD传感器能获取整幅图像的…